ホームページ > Java > &#&チュートリアル > Java では文字列リテラルが文字列定数プールに格納されるのはなぜですか?

Java では文字列リテラルが文字列定数プールに格納されるのはなぜですか?

WBOY
リリース: 2023-09-11 21:17:02
転載
792 人が閲覧しました

Java では文字列リテラルが文字列定数プールに格納されるのはなぜですか?

#Java で String オブジェクトを作成するには 2 つの方法があります

#new 演算子を使用します
  • String str = new String("Tutorials Point");
    ログイン後にコピー
文字列リテラルを使用する
  • String str = "Tutorials Point";
    ログイン後にコピー
  • Java で new String() を呼び出すと、ヒープ メモリにオブジェクトが作成され、文字列リテラルは文字列定数プール (SCP) に入ります。

オブジェクトの場合、JVM は Java での効率的なメモリ管理のための SCP を使用します。他の 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート