在Java 中建立String 物件有兩種方法
String str = new String("Tutorials Point");
String str = "Tutorials Point";
每當我們在Java中呼叫new String()時,它都會在堆記憶體中建立一個對象,並且字串文字將進入字串常數池( SCP)。
對於對象,JVM 使用 SCP,這是為了在 Java 中進行高效的記憶體管理。與其他Java對像不同,他們沒有在堆區管理String對象,而是引入了String常數池。 String常數池的一個重要特性是,如果池中已有String常數,則不會建立相同的String物件。
public class SCPDemo { public static void main (String args[]) { String s1 = "Tutorials Point"; String s2 = "Tutorials Point"; System.out.println("s1 and s2 are string literals:"); System.out.println(s1 == s2); String s3 = new String("Tutorials Point"); String s4 = new String("Tutorials Point"); System.out.println("s3 and s4 with new operator:"); System.out.println(s3 == s4); } }
s1 and s2 are string literals: true s3 and s4 with new operator: false
以上是為什麼在Java中字串字面量儲存在字串常數池中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!