定义:
Object是所有类的基类/根类
所有的类都是直接或者间接继承Object类
常用方法:
-
hashCode()
- public int hashCode()
- 返回该对象的哈希码值。默认情况下,该方法会根据对象的地址来计算。
- 不同对象的,hashCode()一般来说不会相同。但是,同一个对象的hashCode()值肯定相同。
-
toString()
- public String toString()
- 返回该对象的字符串表示
- 默认的方法返回的数据一般对我们没有意义, 建议重写
- JavaBean中一定要去重写, 别的类中重写的概率很低
3.equals()
- 比较当前对象和指定对象内容是否"相等"
- 默认情况下比较的地址值是否相等.
- 在我们的日常逻辑中,比较地址值是否相等没有意义, 建议重写(重写之后比较的就是类中的成员变量的值是否一样)
4.getClass()
- public final Class getClass()
- 返回此对象的类, 可以借由字节码获取到类所有的基础结构属性
- 演示获取类名
面试时经常会被问的问题:
== 和equals()的区别
- ==是一个比较运算符号,既可以比较基本数据类型,也可以比较引用数据类型,基本数据类型比较的是值,引用数据类型比较的是地址值
- equals是一个方法,只能比较引用数据类型,所有的对象都会继承Object类中的方法,如果没有重写Object类中的equals方法,equals方法和==号比较引用数据类型无区别,重写后的equals方法比较的是对象中的属性
- equals()相等两个对象 hashCode()一定相同, equals不等的两个对象, hashCode()也有可能相同
- 建立在equals和hashCode同步重写的情况下