Java で文字列を作成する: "String s = new String("silly")"
Java で文字列を作成する場合、 String クラスの動作を理解することが重要です。 Java の他の多くのクラスとは異なり、String リテラルは new キーワードを必要とせずに String オブジェクトを自動的に作成します。ただし、new 演算子を使用して新しい String オブジェクトを作成することは、不必要なメモリ消費につながる可能性があるため、明示的に推奨されません。
これを説明するために、次のコードを考えてみましょう。
String s = "No longer silly";
この中でこの場合、リテラル「もう愚かではない」が s 変数に直接割り当てられ、その結果、単一の String オブジェクトが作成されます。ただし、次のコード スニペット
String s = new String("silly");
は、不要な追加の String オブジェクトを作成します。これを回避するには、最初の例で示したように、可能な限りリテラル割り当てを使用することをお勧めします。
ただし、String オブジェクトを動的に作成する必要がある場合もあります。たとえば、次のクラスについて考えてみましょう:
public final class CaseInsensitiveString { private String s; public CaseInsensitiveString(String s) { if (s == null) { throw new NullPointerException(); } this.s = s; } }
このシナリオでは:
以上が`CaseInsensitiveString` オブジェクトを作成するときに、`String` オブジェクトではなく、なぜ `new` を使用する必要があるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。