一、简介
面试中经常会被问到Object类有哪些常用的方法和各自的作用,我们都知道Object类是所有类的基类,所以我们也有必要去了解它常见API,下面我们通过一张表来总结Object类有哪些常用方法以及作用:
方法返回值类型 |
方法名称以及描述 |
protected Object |
clone() 创建并返回此对象的克隆对象,一般子类会重写这个方法. |
boolean |
指示某个其他对象是否“等于”这个对象. |
protected void |
finalize() 当垃圾收集确定没有对对象的更多引用时,由对象上的垃圾收集器调用 |
Class<?> |
getClass() 返回此对象的运行时Class类对象 |
int |
hashCode() 返回对象的哈希码值 |
void |
notify() 唤醒正在此对象监视器上等待的单个线程,主要用于多线程通信中,需配合wait()方法使用 |
void |
唤醒正在此对象监视器上等待的所有线程 |
toString() 返回对象的字符串表示形式 |
|
void |
wait() 导致当前线程等待,直到另一个线程调用此对象的notify()方法或notifyAll()方法 |
void |
wait(long timeout) 导致当前线程等待,直到另一个线程调用此对象的notify()方法或notifyAll()方法,或者经过指定的时间量 |
void |
wait(long timeout, int nanos) 导致当前线程等待,直到另一个线程调用此对象的notify()方法或notifyAll()方法,或其他一些线程中断当前线程,或已经过了一定时间 |
注意:wait()方法和notify()虽然是在多线程中使用到,需特别注意它不是Thread类的方法,注意sleep()睡眠方法才是Thread类的,wait()和notify()、notifyall()方法是Object类的。
更多Object类的API可以参考JDK官网文档:https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html