首頁  >  文章  >  Java  >  為什麼在Java中字串字面量儲存在字串常數池中?

為什麼在Java中字串字面量儲存在字串常數池中?

WBOY
WBOY轉載
2023-09-11 21:17:02738瀏覽

為什麼在Java中字串字面量儲存在字串常數池中?

在Java 中建立String 物件有兩種方法

  • #使用new 運算子
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中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除

相關文章

看更多