1. 程式人生 > >java String常量池

java String常量池

首先看下面一個程式碼

然後執行結果:

那通過結果我們可以看到  只建立了一個String 物件 為什麼會這樣呢這就是java中的常量池  

當建立一個常量物件時  先判斷 常量池是否存在 相同內容的常量   如果存在就不再繼續建立 而是將找到常量的引用 給 要建立的字串常量    他們其實是一個物件

而下面這個程式碼:

執行結果為:


    從執行結果我們可以看到這是兩個不同的字元創物件

  那是因為 常量池中本身存在"123" 這個字元創物件    在 執行new String("123" ) 時  只是將常量池中的"123"複製到 堆中

然後物件的引用 交給b  這其實就是兩個字串物件  一個字 常量池 一個在 堆中  所以執行結果為false