Object简述

  • 这个老祖宗类中的方法我们需要先研究一下,因为这些方法都是所有子类通用的。
  • 任何一个类默认继承Object。就算没有直接继承,最终也会间接继承。

object中需要了解的方法

  • protected Object clone()// 对象克隆
  • int hasCode() //获取对象哈希值
  • boolean equals(Object obj) // 判断两个对象是否相等
  • String toString() // 将对象转换成字符串的形式
  • protected void finalize() //垃圾回收器负责调用的方法

toString()

  1. 将java对象转换成“字符串”表示方法
  2. sun公司建议重写toString();
  3. 输出引用,会自动调用toString()方法

Animal a = new Animal();
`System.out.println(a) //自动调用了toStirng方法``

`

equals()

  1. 在java中“”是用来比较基本数据类型

§ 如果用 == 来判断对象是否相等 会调用toString()方法
§ 比较的是对象的内存地址

  1. equals() 是用来比较引用数据类型是否相同
  2. equals()都要重写 idea中生成 alt+ ins
    因为在object类中equals()是判断 所以要重写
    所有的类都要写equals() 一定要写彻底

finalize() 了解即可

  1. finalize()只有一个方法体,没有代码 protected修饰
  2. 不需要手动调用,jvm垃圾回收器负责调用
  3. finalize() 方法实际上是sun为程序元准备的一个时机类似于静态代码块 (垃圾回收时机)类似遗书
  4. 例如在开发中有这样的需求所有对象在释放时,请记录回收时间这样的话就可以写在finalize方法里面
  5. 建议启动垃圾回收器 System.gc(); 只是建议 可能启动,可能不启动