ホームページ > Java > &#&チュートリアル > Java 文字列の「new」キーワードを使用する必要があるのはどのような場合ですか?

Java 文字列の「new」キーワードを使用する必要があるのはどのような場合ですか?

Barbara Streisand
リリース: 2024-12-07 21:54:13
オリジナル
575 人が閲覧しました

When should you use the

Java 文字列の文字列リテラルと新しいキーワード

Java では、String クラスは文字シーケンスを表すために使用される基本的なデータ型です。ただし、 new キーワードを使用して新しい String オブジェクトを作成することと、リテラル文字列を変数に直接割り当てることの間には、微妙な違いがあります。

新しいキーワードの使用

コードスニペット String s = new String("silly");リテラルの「silly」を引数として使用して、String クラスの新しいインスタンスを作成します。この操作は追加のメモリを割り当て、ヒープ上に新しいオブジェクトを作成します。

リテラルの直接割り当て

一方、代入 String s = "もう愚かなことはありません";これは、リテラル値「もう愚かではない」を変数 s に直接代入します。 Java は、new キーワードを使用しなくても、匿名 String オブジェクトを自動的に作成して変数に格納します。この最適化により、不必要なメモリ割り当てとオブジェクト作成が回避されます。

ただし、String クラスを拡張しない CaseInsensitiveString クラスの場合、リテラルの直接代入は直接サポートされていません。これを可能にするために、2 つのオプションがあります。

オプション 1: String クラスを拡張する

String クラスを拡張して、その動作を継承する CaseInsensitiveString クラスを作成できます。リテラルの直接代入が可能になります。これは、toString() メソッドとquals() メソッドをオーバーライドして、大文字と小文字を区別しない比較を行うことによって行われます。

オプション 2: カスタム コンストラクターのオーバーロード

別のアプローチは、オーバーロードすることです。リテラル引数を受け入れる CaseInsensitiveString のコンストラクター。これは、String 引数を受け取り、s フィールドを自動的に初期化するコンストラクターを提供することで実現できます。

以上がJava 文字列の「new」キーワードを使用する必要があるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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