1. 程式人生 > >java的String與Stringpool(字串常量池)

java的String與Stringpool(字串常量池)

字串常量值與簡單語法:



String s1 = "sworddancing";
String s2 = "sworddancing";


//在字串常量池中檢視是否含有與“sworddancing”相同的字串物件
//需要明確的是在java中每一個字串就是一個字串物件,儲存在堆中,而字串物件的引用則儲存在字串
常量池中
//若沒有,則新建立一個包含該內容的字串物件,並讓引用變數指向該物件。例如,建立字串s的時候,字串常量池中沒有,則建立一個新物件,並讓s指向該物件;
//若已存在包含該內容的字串物件,則讓字串引用直接指向該物件。例如,建立s2時。
因為s和s2指向同一個物件,所以s==s2。

直接在堆中建立一個包含指定內容的字串物件,並將字串引用指向該物件;
在字串常量池中檢視,是否有包含該內容的物件;
若字串常量池中存在此物件,便將new出來的物件與字串常量池中內容相同的物件聯絡起來。
若沒有,則在字串常量池中再建立一個包含該內容的字串物件,並將堆中的物件與字串常量池中的物件聯絡起來。