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


當你直接以

String str1 = "Hello";

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



並且無論何時我們嘗試透過

String str2 = "Hello";

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

而當我們使用

String str = new String("Hello");

new 關鍵字儲存字串時,無論字串常量池的內容如何,都會建立一個具有給定值的新物件。

更新於:2020-02-19

3000 多次瀏覽

開啟您的 職業

透過完成課程獲得認證

開始學習
廣告
© . All rights reserved.