1. Object类
-
类Object是类层次的根类,也就是说任何个类都是该类的直接或者间接子类。
-
如果定义一个java类没有使用extends指明继承哪个类,编译器自动加上extends Object
常用方法
- equals :若希望比较两个对象的内容 ,则需要重写该方法(默认比较地址)。
```java
// 当调用对象和参数对象指向同一个对象时,则内容一定相同
if (this == obj) return true;
// 当调用对象为不为空而参数对象为空时,则内容一定不相同
if (null == obj) return false;
// 判断obj指向的对象是否为Student类型的对象,若是则条件成立,否则条件不成立
if (obj instanceof Student) {
Student ts = (Student) obj;
// 以学号作为基准判断两个对象是否相等 int是基本数据类型,内存空间中放的就是数据本身,使用 == 可以判断数据是否相同
return this.getId() == ts.getId();
else
return false;
@Override
public boolean equals(Object obj) {
if(obj instanceof Student){
Student student=(Student)obj;//强制转换
return this.getId()==student.getId();
}else
return false;
}
```
-
String toString()
该方法默认返回的字符串为:包名.类名@哈希码值的十六进制
为了返回更有意义的数据,需要重写该方法
使用print或println打印引用或字符串拼接引用都会自动调用该方法
方法声明 | 功能介绍 |
---|---|
Object() | 使用无参方式构造对象 |
boolean equals(Object obj) //多态,父类类型的引用 | 用于判断调用对象是否与参数对象相等(==)。若该方法被重写后,则应该重写hashCode方法来保证结果的一致 |
int hashCode() | 用于获取调用对象的哈希码值(内存地址的编号)。 |
String toString() | 用于获取调用对象的字符串形式 |
2. 包装类 (熟悉)
- 每种包装类型的对象中所包装的值不可改变,要改变必须生成新的对象
Interger
常用方法:MAX_VALUE、MIN_VALUE、SIZE(表示的二进制位数)、BYTES(字节数)、TYPE(表示int类型的class实例)
构造Integer类型的对象:
public Integer(int value||string s)构造方法已过时
采用:valueOf( )//int到Integer类型的转换
获取调用对象的整数类型,相当于Interger到int类型转换
intValue()
字符串转为整数:paserInt("200")//只可数字字符串
int ic=Integer.parseInt("200a") //编译ok,运行发生NumberFormatException数字格式异常
- 装箱:
基本数据类型到包装类实例;拆箱:包装类实例转换为基本数据类型
java开始增加自动拆箱与自动装箱
Integer i=100;
int ib=i;
自动装箱池
将-128到127的整数已经装箱完毕,程序中使用该范围之内的整数时,无需装箱直接取用自动装箱池中的对象即可,从而提高效率
Integer i1=128; Integer i5=127;
Integer i2=128; Integer i6=127;
Integer i3=new Integer(128);
Integer i3=new Integer(128);
i1==i2; //false 比较的地址 i5==i6; true 地址一样
i2/equals(i2); //true 比较内容
Double
// 1.在Java5之前装箱和拆箱的实现
// 实现了从double类型到Double类型的转换,装箱
Double db1 = Double.valueOf(3.14);
System.out.println("db1 = " + db1); // 3.14
// 实现了从Double类型到double类型的转换,拆箱
double d1 = db1.doubleValue();
System.out.println("d1 = " + d1); // 3.14
// 2.从Java5开始实现自动装箱和自动拆箱
Double db2 = 3.14;
double d2 = db2;
double d=5.0/5 //Infinty正无穷大
-5.0/.0 //-Infinity负无穷大
0.0/0.0 //NAN (not a number)
Boolean
// 相当于从boolean类型到Boolean类型的转换,装箱
Boolean bo1 = Boolean.valueOf(true);
System.out.println("bo1 = " + bo1); // true
boolean b1 = bo1.booleanValue();
System.out.println("b1 = " + b1); // true
System.out.println("----------------------------------------------");
// 2.从Java5开始支持自动装箱和拆箱
Boolean bo2 = false;
boolean b2 = bo2;
System.out.println("b2 = " + b2); // false
System.out.println("----------------------------------------------");
// 3.实现从String类型到boolean类型的转换
//boolean b3 = Boolean.parseBoolean("112");
// 该方法的执行原理是:只要参数数值不为true或者TRUE时,则结果就是false
Character
- 封装了单个字符值
// 1.在Java5之前调用方法实现装箱和拆箱机制
// 相当于从char类型到Character类型的转换,装箱
Character ca1 = Character.valueOf('a');
System.out.println("ca1 = " + ca1); // a
// 从Character类型向char类型的转换,拆箱
char c1 = ca1.charValue();
System.out.println("c1 = " + c1); // a
System.out.println("----------------------------------------");
// 2.从Java5开始支持自动装箱和拆箱
Character ca2 = 'b';
char c2 = ca2;
System.out.println("c2 = " + c2); // b
System.out.println("----------------------------------------");
// 3.实现字符类型的判断以及转换
System.out.println(Character.isUpperCase(c2)); // 判断是否为大写字母 false
System.out.println(Character.isLowerCase(c2)); // 判断是否为小写字母 true
System.out.println(Character.isDigit(c2)); // 判断是否为数字字符 false
System.out.println("转换为大写字符是:" + Character.toUpperCase(c2)); // B
System.out.println("转换为小写字符是:" + Character.toLowerCase(c2)); // b
Math类(熟悉)
System.out.println("获取两个整数中最大值的结果是:" + Math.max(10, 20)); // 20
System.out.println("获取两个整数中最小值的结果是:" + Math.min(10, 20)); // 10
System.out.println("获取次方的结果是:" + Math.pow(2, 3)); // 8.0 体现double类型
System.out.println("获取绝对值的结果是:" + Math.abs(-5)); // 5
System.out.println("进行四舍五入的结果是:" + Math.round(3.14)); // 3
System.out.println("该整数的平方根是:" + Math.sqrt(16)); // 4.0
System.out.println("生成的随机数是:" + Math.random()); // 随机数 包含0.0不含1.0
BigDecimal类
由于float与double类型在运算时可能有误差,对于BigDecimal可实现精度运算
// 1.构造BigDecimal类型的两个对象
BigDecimal bd1 = new BigDecimal("5.2");
BigDecimal bd2 = new BigDecimal("1.3");
// 2.使用构造完毕的对象实现加减乘除运算
System.out.println("实现加法运算的结果是:" + bd1.add(bd2)); // 6.5
System.out.println("实现减法运算的结果是:" + bd1.subtract(bd2)); // 3.9
System.out.println("实现乘法运算的结果是:" + bd1.multiply(bd2)); // 6.76
System.out.println("实现除法运算的结果是:" + bd1.divide(bd2)); // 4
// 3.实现精确运算
System.out.println(0.1 + 0.2); // 0.30000000000000004
BigDecimal bd3 = new BigDecimal("0.1");
BigDecimal bd4 = new BigDecimal("0.2");
System.out.println("精确计算的结果是:" + bd3.add(bd4)); // 0.3
// 4.注意事项
BigDecimal bd5 = new BigDecimal("2");
BigDecimal bd6 = new BigDecimal("0.3");
System.out.println("除法运算的结果是:" + bd5.divide(bd6, RoundingMode.HALF_UP)); // 7
}
BigInteger类可表示任何大小的实数
igDecimal(“2”);
BigDecimal bd6 = new BigDecimal(“0.3”);
System.out.println(“除法运算的结果是:” + bd5.divide(bd6, RoundingMode.HALF_UP)); // 7
}
BigInteger类可表示任何大小的实数