Object 有哪些方法

174 阅读1分钟

equals

检测对象是否相等,默认使用 == 比较,可以重写该方法自定义规则。 

hashCode

每个对象都有默认散列码,值由对象存储地址得出。字符串散列码由内容导出,值可能相同。 

toString 

默认打印表示对象值的一个字符串。 

clone 

默认声明为 protected,只能由本类对象调用,且是浅拷贝。一般重写 clone 方法需要实现 Cloneable 接口并声明为 public,如果没有实现 Cloneable 接口会抛出 CloneNotSupport 异常。 

finalize 

GC 判断垃圾时,如果对象没有与 GC Roots 相连会被第一次标记,之后判断对象是否有必要执行 finalize 方法,有必要则由一条低调度优先级的 Finalizer 线程执行。虚拟机会触发该方法但不保证结束,防止方法执行缓慢或发生死循环。只要对象在 finalize 方法中重新与引用链相连,就会在第二次标记时移出回收集合。由于运行代价高且具有不确定性,在 JDK9 标记为过时方法。 

getClass 

返回对象所属类的 Class 对象。 

wait 

阻塞持有该对象锁的线程。 

notify 

唤醒持有该对象锁的线程,notify 随机唤醒一个线程,

notifyAll 

唤醒全部线程。