(1)Object类型是所有引用数据类型的超类,包括数组类型
如果一个类没有显式的声明它的父类,那么它的父类就是Object。
(2)Object类中的方法,会继承到所有类型的对象中,包括数组对象。
即所有对象都可以调用Object类中声明的方法
(3)Object类型变量或数组可以接收和存储所有类型的对象。
2、它的常用方法们
(1)public String toString():返回对象的详细信息,建议子类重写。
如果不重写,返回的是“类型名@hashCode值"。
当我们一个对象被打印或与字符串拼接时,就自动会调用这个对象的toString()
(2)public Class getClasse():获取这个对象的“运行时”类型
(3)public void finalize():当对象被GC回收之前,由垃圾回收器调用。一般资源对象才会重写这个方法,用于彻底释放资源。可能在finalize方法使得对象“复活”,但是复活后的对象,下次就不会再调用finalize方法。
(4)public int hashCode():返回对象的hash码。
理想状态下:不同的对象的hash码的唯一。
现实状态下:不同的对象可能拥有相同的hashCode值。例如:"Aa" 和 "BB"
如果重写hashCode方法,那么要遵循几个原则:
A:如果参与hashCode值计算的属性值没有变,那么这个对象的hashCode值就不变。
B:相同对象(即调用equals返回true的两个对象)的hashCode值一定是一样
C:不同对象(即调用equals返回false的两个对象)的hashCode值可以相同也可以不同
(5)public boolean equlas(Object obj):用于判断两个对象是否相等
如果子类没有重写equals方法,那么和==是一样,比较的是对象的内存地址。
我们可以选择重写,重写要遵循几个原则:
A:一定和hashCode()一起重写,并且选择的属性一定是一样的
B:遵循几个特性:
自反性、传递性、对称性、一致性、非空对象与空对象比较一定是false