JAVA之Object类
Posted 泥鱼生长
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA之Object类相关的知识,希望对你有一定的参考价值。
一、java.lang.Object类简介
- Object类是所JAVA类的根父类。
- 如果在类的声明中未使用extends关键字指明父类,则默认父类是Object类。Object类中的功能(属性、方法)就具有通用性属性。
- equals()/toString()/getClass()/hashCode()/clone()/finalize()/wait()/notify()/notifyAll()。
- Object类只声明了一个空参的构造器。
相关面试题:final,finally,finalize的区别?
二、== 和 equals的区别
- 回顾==的使用
-
- ==是运算符
- 可以使用在基本数据类型变量和引用数据类型变量中
- 如果比较的是基本数据类型变量:比较两个变量保存的数据是否相等(涉及自动类型提升)
- 如果比较的是引用数据类型变量:比较两个对象的地址值是否相同(即两个引用是否指向同一个对象实体)
- 补充:使用时,必须保证符号左右两边的变量类型一致
2. equals()方法的使用:
-
- 一个方法,不是运算符,只能适用于引用数据类型。
- Object类中定义的equals()的方法:作用和 ==相同,比较两个对象的地址值是否相同
- 像Date、String、File、包装类等都对equals方法进行了重写,重写之后比较的不再是引用的地址,而是比较两个对象的实体内容是否相同。
- 通常情况下,自定义的类如果使用equals方法的话,通常是比较两个对象的实体内容是否相同。就需要对equals方法进行重写。
- 重写equals方法的原则:
- 对称性
- 自反性
- 传递性
- 一致性
- 任何情况下,x.equals(null)永远返回false
三、toString方法的使用
- 当我们输出一个对象的引用时,实际上就是调用当前对象的toString方法。
- Object类中toString方法的定义:
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
3. 像String、Date、File、包装类等都重写了Object类中的toString()方法。使得在调用对象的toString方法时,返回实体内容信息。
4. 自定义类也可以重写toString方法,当调用此方法时,返回对象的实体内容。
以上是关于JAVA之Object类的主要内容,如果未能解决你的问题,请参考以下文章