1.wait 和notify()/notifyAll()
调用wait()和notify()之前必须获得对象锁,一般用在synchronized.调用wait()方法之后,线程便释放了对象的锁,必须重新获得对象锁
2.clone() ->"shadow copy" and "deep copy"
浅层复制与深层复制概念:
浅层复制: 被复制的对象的所有成员属性都有与原来的对象相同的值,而所有的对其他对象的引用仍然指向原来的对象。换言之,浅层复制仅仅复制所考虑的对象,而不复制它所引用的对象。(概念不好理解,请结合下文的示例去理解)
深层复制:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量。那些引用其他对象的变量将指向被复制过的新对象,而不是原有的那些被引用的对象。换言之,深层复制要复制的对象引用的对象都复制一遍
3.registerNatives() 作用:将C/C++中的方法映射到Java中的native方法,实现方法命名的解耦