Java 独自の文字列初期化を理解する
Java のオブジェクト指向の性質にもかかわらず、二重引用符を使用した文字列の初期化には疑問が生じます。文字列がクラス構造に属している場合、どのようにしてこれが可能になるのでしょうか?
Java の特殊文字列
Java の設計者は、パフォーマンスを最適化するためにオブジェクト指向フレームワーク内でプリミティブ型を保持しようとしました。プリミティブは呼び出しスタックに格納されるため、メモリ使用量と操作コストが削減されます。一方、オブジェクトはプログラム ヒープを占有し、複雑なメモリ管理とより大きなストレージ要件を伴います。
この溝を埋めるために、Java の String はプリミティブとクラスの両方の特性を持つように設計されました。
文字列リテラルとオブジェクト
次の点を考慮してください。例:
String s1 = "Hello"; // String literal String s2 = "Hello"; // String literal String s3 = s1; // Same reference String s4 = new String("Hello"); // String object String s5 = new String("Hello"); // String object
以下にリンクされている画像は、これを示しています:
[文字列プールとヒープ ストレージの画像]
文字列リテラル (s1 および s2) は、内部でストレージを共有します。共通プール、メモリを節約します。ただし、String オブジェクト (s4 および s5) はヒープ内に存在し、共有されません。
以上がオブジェクトであるにもかかわらず、Java で二重引用符を使用して文字列を初期化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。