1. 全部類都繼承object類java
public final native Class<?> getClass();源碼裏面native修飾的表示應用層搞不定,就須要javaJVM的支持,底層os就開啓了一個線程安全
1.1 finalize:,對象要被回收的時候,就再給對象一次機會,就用全局變量引用該對象(finalize未必有機會執行,就調用一次,實際開發不用)多線程
1.2 clone:須要實現接口cloneable不然拋出cloneNotSupporttedException,只能使用淺克隆,克隆的時候屬性要簡單(==比較2個對象的內存地址)併發
x.clone() != x true優化
x.clone().getClass() == x.getClass();(延伸知識點:能獲得字節碼對象(就是class對象),就能通 過class字節碼去操縱屬性和方法,該類的全部實例都共同擁有着這個Class對象,並且是惟一的)線程
1.3 當比較2個對象equals相等,如若相等則2個的hashCode也必定相等、反過來就不必定了對象
覆蓋了equals時就必須覆蓋hashCode繼承
2.1 String是一個普通類,創建對象2鍾方式,一是new對象,二是class.forname接口
2.2Java JVM 會作優化,把字符串放入常量池內存
2.3 StringBuffer支持併發操做,線程安全,適合多線程
StringBulder(單線程的時候效率高,非安全)不支持併發操做,線程不安全,不適合多線程