首頁 > Java > java教程 > 為什麼在Java中字串字面量儲存在字串常數池中?

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

WBOY
發布: 2023-09-11 21:17:02
轉載
788 人瀏覽過

為什麼在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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板