Object类是所有类的父类型,类中定义的方法,java中所有对象都可以调用。
1.toString方法:可以返回一个对象默认的字符串形式。子类中可以对该方法进行重写。默认情况下,println方法会调用当前对象的toString方法。
2.getClass方法:可以返回一个引用在运行时所指向的对象,具体类型是什么。子类中不能重写getClass。根据getClass方法知道,通过父类引用指向子类对象的方式,创建的子类对象只有父类对象的属性的操作权限。
3.equals方法:可以比较俩个对象是否相等。Object中的equals方法,是直接使用的==
号进行的比较,比较俩个对象的地址值是否相等。子类中可以对该方法进行重写。重写的要求:
1)自反性:对任意引用obj,obj.equals(obj)的返回值一定为true;
2)对称性:对于任何引用o1、o2,当且仅当o1.equals(o2)返回值为true时,o2.equals(o1)的返回值一定为true;
3)传递性:如果o1.equals(o2)为true, o2.equals(o3)为true,则o1.equals(o3)也一定为true;
4)一致性:如果参与比较的对象没任何改变,则对象比较的结果也不应该有任何改变;
5)非空性:任何非空的引用obj,obj.equals(null)的返回值一定为false。
4.hashCode方法:该方法返回一个int值,该int值是JVM根据对象在内存的中的特征(地址值),通过hash算法计算出的一个结果。
(1)Hash,一般翻译做“散列”,也可以音译为“哈希”,就是把任意长度的数据输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。一个任意长度的输入转为一个固定长度的输出,是一种压缩映射,也就是说,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。
Object中的hashCode方法默认返回的是对象的内存地址,但是实际上可能并不是。
(2)对于俩个对象的hashCode值:
1)相等的俩个对象,hashCode值一定相等;
2)hashCode值相同,俩个对象有可能相等,也可能不同等;
3)hashCode值不同,俩个对象一定不同。
5.wait(),notify(),notifyAll()3个方法只能在同步代码块中,由作为锁的对象使用。
Java_Object类
最新推荐文章于 2024-08-29 18:44:48 发布