Object简述
- 这个老祖宗类中的方法我们需要先研究一下,因为这些方法都是所有子类通用的。
- 任何一个类默认继承Object。就算没有直接继承,最终也会间接继承。
object中需要了解的方法
- protected Object clone()// 对象克隆
- int hasCode() //获取对象哈希值
- boolean equals(Object obj) // 判断两个对象是否相等
- String toString() // 将对象转换成字符串的形式
- protected void finalize() //垃圾回收器负责调用的方法
toString()
- 将java对象转换成“字符串”表示方法
- sun公司建议重写toString();
- 输出引用,会自动调用toString()方法
Animal a = new Animal();
`System.out.println(a) //自动调用了toStirng方法``
equals()
- 在java中“”是用来比较基本数据类型的
§ 如果用 == 来判断对象是否相等 会调用toString()方法
§ 比较的是对象的内存地址
- equals() 是用来比较引用数据类型是否相同
- equals()都要重写 idea中生成 alt+ ins
因为在object类中equals()是判断 所以要重写
所有的类都要写equals() 一定要写彻底
finalize() 了解即可
- finalize()只有一个方法体,没有代码 protected修饰
- 不需要手动调用,jvm垃圾回收器负责调用
- finalize() 方法实际上是sun为程序元准备的一个时机类似于静态代码块 (垃圾回收时机)类似遗书
- 例如在开发中有这样的需求所有对象在释放时,请记录回收时间这样的话就可以写在finalize方法里面
- 建议启动垃圾回收器 System.gc(); 只是建议 可能启动,可能不启动
