1.protected Object clone()
protected native Object clone() throws CloneNotSupportedException;
https://blog.csdn.net/qq_38962004/article/details/79721230 讲解深克隆和浅克隆
2.int hashCode()
public native int hashCode();
java对象的内存地址,经过哈希算法,得出一个值。
3.boolean equals(Object obj) :
public boolean equals(Object obj) {
return (this == obj);
}
- 用来判断两个对象是否相等。
- 在判断两个对象的过程中,若使用“= =”是判断两个对象的的内存地址是否相等,而“equals”在Object默认的判断也是用“==”,故在需要的时候需要重写该方法。
- 基本数据类型用“==”判断,引用数据类型用equals判断
- 注意:例如在使用if(array.equals(“abc”))时,可以写成if(“abc”.equals(array))。这样可以避免空指针异常。
4.String toString():
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
- 在源码上默认实现的是类名@对象的内存地址转换为十六进制的形式
- 目的:调用这个方法可以将java对象转换成字符串表示形式。建议所有子类都重写该方法。
- 在输出引用的时候,默认调用该方法。
5.protected void finalize()
protected void finalize() throws Throwable { }
- GC(Garbage-Collect)负责调用
- protected修饰,这个方法不需要程序员调用,JVM的垃圾回收器负责调用。
- 当一个java对象即将被垃圾回收器回收的时候,垃圾回收器负责调用该方法。
- 如果希望在对象被销毁时执行一段代码,则写进finalize中
- 注:当垃圾太少时,垃圾回收器可能不启动。
- System.gc();//建议启动垃圾回收器