- API
- Object常用方法
- 1、protected Object clone()
- 2、int hashCode()
- 3、boolean equals (Object obj)
- 4、String toString()
- 5、protected void finalize()
api是应用程序编程接口
整个jdk的类库就是一个javase的类库
每个api都会配置一套api帮助文档
便于程序员的开发
Object常用方法 1、protected Object clone()负责对象克隆的
这个有深克隆和浅克隆之分,但是在实际开发中不是很常用,具体的区别可以看这个
深克隆与浅克隆的区别
获取对象哈希值的方法
这个方法不是抽象方法,带有native关键字,底层调用c++程序
返回的是哈希码
实际上就是一个java对象的内存地址,经过哈希算法,得出一个值,可以等同看做是一个内存地址。
3、boolean equals (Object obj)判断两个对象是否相等
object中equals的默认实现
public boolean equals(Object obj这里的数据类型是引用数据类型,应用的是多态) {
return (this == obj);
}
这里的equals功能不够用,object中的equals是用==来判断,需要子类重写equals方法
作用:通过equals方法,判断两个java对象是否相等
判断两个java对象是否相等,不能使用“”,因为“”判断的是两个对象的内存地址
重写equals时要注意obj是一个object的对象,所以重写的时候需要调用子类对象的话需要转型
String类比较两个字符串不能使用==号,必须使用equals方法,在String类中已经重写equals方法了
java中引用数据类型判断用equals方法
java中基本数据类型判断用==号
equals方法重写时的架子是一样的
如果用了多态的方法,那么需要注意equals的使用情景,所以两个类之间进行对象比较的话需要都对equals进行重写,就比如:两个类:Address和User;进行对两个类的对象进行比较的话需要Address和User类都对equals类进行重写
equals方法重写的时候要彻底
4、String toString()将对象转化成字符串形式
源代码上toString()方法的默认实现是:
类名@对象的内存地址转化为十六进制的形式
作用:通过调用这个方法可以将一个java对象转化成字符串表现形式
建议:所有子类都重写次方法,重写的时候最好是复制粘贴,否则容易报错
5、protected void finalize()垃圾回收器负责调用的方法
只有方法体,但是里面没有代码,
这个方法不需要程序员手动调用,是JVM的垃圾回收期负责调用这个方法
GC会负责调用finalize()方法
java中的垃圾回收器不会轻易启动,垃圾太少,或者时间没到的时候都不会执行



