Object类:
1.toString():用于显示对象的信息,一般需要重写
public String toString() {
return "first{" +
"name='" + name + '\'' +
", age=" + age +
", id=" + id +
'}';
}
2.equals():Object类是用于比较是否相等,对于基本数据类型都是比较值相等,引用数据类型比较的是地址是否相等。需要重写。
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User first = (User) o;
return age == first.age && id == first.id && Objects.equals(name, first.name);
}
为什么不调用Object的equal方法:如果调用者是null会产生空指针异常的问题。调用的是Objects的方法
3.clone()用于对象的拷贝,浅拷贝,同时需要实现的下面的接口
implements Cloneable
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
浅拷贝和深拷贝的区别:
浅拷贝指向的地址,原对象和拷贝对象都是相同的。
深拷贝对于基本数据类型会使用常量池里面的地址,对于引用数据类型都会重新创建的
Objects类:工具类,提供静态方式使用
1.equals方法:源码 先判断两个是否地址相同和类型相同且要保证a不为空
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
2.包装类:将基本数据类型转换成引用数据类型
创建方式第一种已经过时了
Integer i = new Integer(11);
Integer i1 = Integer.valueOf(11);
自动装箱和自动化拆箱
Integer a = 11;
int b = a;
包装类的作用就是用于泛型和集合里面
1.MATH
2.EXTI
0:表示正常退出java虚拟机
System.exit(0);
currentTimeMillis():用于计算中间的运行时间
long l = System.currentTimeMillis();
Thread.sleep(2000);
long l1 = System.currentTimeMillis();
System.out.println(l1-l);
3.BigDecimal (为什么不能使用double进行构造)
该类是用于解决浮点数计算的精度问题,将浮点型转换成字符串进行计算
注意点:除法如果不能确定精度的话,需要设置范围,否则会报错
BigDecimal bigDecimal1 = new BigDecimal(Double.toString(temp1));
BigDecimal bigDecimal2 = new BigDecimal(Double.toString(temp2));
BigDecimal add = bigDecimal1.add(bigDecimal2);
System.out.println(add);
double v = add.doubleValue();
4.Runtime
构造函数是私有的只能通过getRuntime来创建Runtime对象
JAVA对于字符串:如果是直接创建的会在常量池里面进行创建,如果是用new的方法进行创建的花,他首先会在常量池里面查看是否已经存在该字符串,之后才会在堆上面进行创建。
StringJoiner:用于生成像[…,…]的数组
也可以设置开始符和结束符