字符串初始化的兩種方式

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

  String s1= " hello";

  String s2 = new String("hello");

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

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




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

發佈了17 篇原創文章 · 獲贊 10 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章