Java 中的 String s1 = "Hello" 和 String s1= new String("Hello") 有什麼區別?


當您按以下方式直接儲存一個字串時,

String str1 = "Hello";

JVM 會在稱為字串常量池的單獨記憶體塊中建立一個具有給定值的字串物件。



並且每當我們嘗試按以下方式建立另一個字串時,

String str2 = "Hello";

JVM 將驗證字串常量池中是否存在具有相同值的字串物件,如果存在,則 JVM 會分配現有物件引用給新變數,而不是建立一個新物件。

而當我們按以下方式儲存字串時,

String str = new String("Hello");

使用 new 關鍵字會建立一個具有給定值的新物件,而不管字串常量池的內容如何。

更新於: 19-2020

3K+ 檢視

開啟您的 職業生涯

完成課程並獲得認證

開始
廣告
© . All rights reserved.