Java 中的字串字面量是如何以及在哪裡儲存在記憶體中的?


字串用於在 Java 中儲存一系列字元,它們被視為物件。java.lang 包的 String 類表示一個字串。

您可以使用 new 關鍵字(像任何其他物件一樣)或透過為字面量賦值(像任何其他原始資料型別一樣)來建立一個字串。

示例

public class StringDemo {
   public static void main(String args[]) {
      String stringObject = new String("Hello how are you");
      System.out.println(stringObject);
      String stringLiteral = "Welcome to Tutorialspoint";
      System.out.println(stringLiteral);
   }
}

輸出

Hello how are you
Welcome to Tutorialspoint

字串的儲存

字串儲存在堆區域中一個稱為字串常量池的單獨記憶體位置。字串常量池:這是一個單獨的記憶體塊,其中儲存所有字串變數。

當您將字串儲存為

String str1 = "Hello";

直接儲存時,JVM 會在字串常量池中建立一個具有給定值的字串物件。

並且每當我們嘗試建立另一個字串為

String str2 = "Hello";

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

而當我們使用 new 關鍵字儲存字串為

String str = new String("Hello");

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

更新於:2020年7月2日

8K+ 瀏覽量

啟動您的職業生涯

透過完成課程獲得認證

開始學習
廣告