1.clone()
保护方法,实现对象的浅复制。。
只用实现了Cloneable接口,才可以调用该方法,
否则抛出CloneNotSupportedException异常。
2.getClass()
final方法
获得运行时类型。
3.finalize()
释放资源。
不能确定该方法什么时候被调用。
4.toString()
一般子类都有覆盖。
5.equals()
一般子类都有覆盖。
在Object中,equals和==是一样的。
6.hashCode()
用于哈希查找,可以减少在查找中使用equals的次数。
重写equals()一般都要重写hashCode()。
equals相同,hashCode()值相同。
hashCode相等不一定满足equals。
7.wait()
wait方法就是使当前线程等待该对象的锁,
当前线程必须是该对象的拥有者,也就是具有该对象的锁。
wait()方法一直等待,直到获得锁或者被中断。
wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
(1)其他线程调用了该对象的notify方法。
(2)其他线程调用了该对象的notifyAll方法。
(3)其他线程调用了interrupt中断该线程。
(4)时间间隔到了。
此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。
8.notify()
该方法唤醒在该对象上,等待的某个线程。
9.notifyAll()
该方法唤醒在该对象上,等待的所有线程。