String 和Object

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(單線程的時候效率高,非安全)不支持併發操做,線程不安全,不適合多線程

相關文章
相關標籤/搜索