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");
時,無論字串常量池的內容如何,都會建立一個具有給定值的新物件。
廣告