一點基礎,這位博主寫得很好:
簡要概括一下:
1.建立方式:
string str1 ="hello world";
string str2 = new string("hello world");
str1 == str2 ????
並不等於,建立str1時,jvm會查詢常量池中是否有hello world物件,若沒有則建立並返回引用。若存在,則直接返回引用。
str2 是在編譯時,在常量池中建立hello world變數,new的使用使用常量池中引用,在堆中建立位址。。str2指向的是堆位址。
2.string物件的不可變性
1.string的類被final修飾,因此不可以被繼承;
2.用來被儲存字元床的value被final修飾,因此,string物件一旦被初始化,就不能被修改。
提示一下,string不可變指的是
string物件不可變的幾個原因。
1.出於安全考慮若string物件可以被隨意修改,那麼就有可能被惡意修改。
2.確保hash值不會變化,確保唯一性,保障hashmap等功能的正常實現
3.可以實現字串常量池
設計模式 建立模式
一 總括 話說設計模式 每一種設計模式都描述了乙個我們周圍不斷重 生的問題以及解決方案的核心,使用涉及模式可以避免 的重複勞動。設計模式的主要目標 提供 的可維護性和可讀性。設計模式的原則 開閉原則 擴充套件開放 修改關閉 依賴倒轉 依賴抽象,不依賴具體 黎克特制代換原則 子類必須能替換父類的每一種...
設計模式 建立模式
我們按照模式所關心的主要問題可以把模式大致分為三類 1.建立模式 此類模式 主要關注物件的產生因此我們把它們分為一類 2.結構模式 此類模式主要關心類和物件的 組合 3.行為模式 刻畫了類和物件交換及分配職責的方式 建立模式主要包括 單例模式,工廠模式,建造者模式,原型模式,生成器模式。結構模式主要...
「物件建立」模式
定義 通過 物件建立 模式繞開new,來避免物件建立 new 過程中所導致的緊耦合 依賴具體類 從而支援物件的穩定。它是介面抽象之後的第一步工作。在軟體系統中,經常面臨著建立物件的工作 由於需求的變化,需要建立的物件的具體型別經常變化。如何應對這種變化?如何繞過常規的物件建立方法 new 提供一種 ...