字符串初始化

字符串初始化的兩種方式:

 String s1= " hello";

String s2 = new String("hello");

第一種方式會在棧中創建一個對象引用變量,然後查看字符串池(關於字符串池參考文末鏈接)中是否已經存在該字符串(“hello”),如果存在則對象的引用直接指向字符串池中該字符串;如果不存在,則將創建的字符串對象放入字符串池中,並讓引用變量指向它。

第二種方式在堆中創建對象,每次都創建新的對象


*字符串池:“字符串池”,是Java爲了提高內存利用率而採用的措施:當遇到String a = "Hello"; 這樣的語句時,Java會先在字符串池中尋找是否已經存在"Hello"這個字符串,如果沒有,則建立字符串"Hello"對象,然後變量 a 指向這個地址;然後遇到語句String b = "Hello",這時字符串池中已經有 "Hello"了,所以直接讓變量b也指向這個地址,省去了重新分配的麻煩。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章