首先,object 是全部类的父类,全部类默认继承 object 类。spa
1. clone 方法,是 object 类的 protect 方法。实现了对象的浅拷贝。有两个须要注意,第一点是若是不显式去重写 clone 方法。其余类没法直接调用该类实例的 clone 方法。第二点是,若是不实现 cloneable 接口,则会抛出 clonenotsupportedException 异常。线程
2. equals 方法,在 object 类中与 == 相同,子类通常须要重写该方法。code
3. hashcode 方法,用于 hash 查找,重写了 equals 方法通常也要重写 hashcode 方法。hashcode 返回散列值,equals 返回引用对象值是否相等。值相等的对象,散列值必定相等;散列值相等的对象,值不必定相等。在覆盖 equals 方法中,也须要覆盖 hashcode 方法,保证等价的两个对象,值也相等。对象
4. getclass 方法,final 方法,得到运行时类型。继承
5. wait 方法,若是当前线程拥有某个对象,而且释放所持有的对象的 lock。wait 方法会一直等待,直到得到锁 or 被中断。wait(time)设定一个时间间隔,规定时间内没有得到锁就返回。(wait和sleep的区别是,wait释放了锁,sleep仍然持有锁)接口
调用了该方法后,线程会进入睡眠状态,直到:字符串
1. 其余线程调用了该对象的 notify / notifyall 方法。get
2.其余线程调用了 interrupt 打断该线程,抛出一个 InterruptedException 异常。hash
3. 时间间隔到了。it
4. 该线程能够被被调度了。
6. toString 方法,转换成字符串,通常子类都有重写,若是不重写,则打印句柄。
7. finalize();
finalize方法是一个protected方法,Object类的默认实现是不进行任何操做。
该方法的做用是实例被垃圾回收器回收的时候触发的操做,就比如 “死前的最后一波挣扎”。
咱们发现Object类中finalize方法被定义成一个空方法。