4 Object类 是所有类的根父类
在java中 类的继承是可传递的 所以Object中的实例方法,所以对象都有
4.1 finalize()方法 当对象被垃圾回收器收走时 会执行对象的finalize()方法
因为垃圾回收器回收对象的时间不确定,执行对象的finalize()方法也就不确定执行时间了,一版不使用
override 方法重写(覆盖) 子类继承父类 从父类中继承的类方法不能满足子类需求时,需要重写该方法
当垃圾回收器回收某个对象时,会调用这个对象的finalize()方法
gc 垃圾回收器
静态方法 通过类名来调用 static 修饰符
4.2 toString()方法 是从object类继承来的
getClass 返回当前对象的运行时类的完整类名 对象的哈希吗的十六进制
![](https://img.haomeiwen.com/i8789973/0af27004ca83a1f8.png)
输出对象时会调用对象的toString方法 从Object类继承的toString()方法,但并不能返回所要的结果
需要使用重写toString()方法 使用注解@override 判断重写是否正确
场景:在输出某个对象时,想显示对象的各个字段值 而不是哈希码
4.3 equals()
![](https://img.haomeiwen.com/i8789973/b4d3eb0637eba6a6.png)
![](https://img.haomeiwen.com/i8789973/2477941d2f77a2eb.png)
![](https://img.haomeiwen.com/i8789973/c942e059bda65e5f.png)
也是从Object类继承的,在Object类中equals()方法也是使用==进行比较的
![](https://img.haomeiwen.com/i8789973/141e1d6cb9513608.png)
instanceof
![](https://img.haomeiwen.com/i8789973/769e6a5efb0646b9.png)
根据哈希约定 如果两个对象equals()相等,那么这个两个对象的hashCode()值也应该一样 哈希码
需要重写hashCode()方法
![](https://img.haomeiwen.com/i8789973/7a85e74312177543.png)
![](https://img.haomeiwen.com/i8789973/7fd6ba2225c893ec.png)
ctrl+ d 删除一行
网友评论