[解決済み】"text "とnew String("text")の違いは?)
2022-04-07 07:41:08
質問
次の2つの文の違いは何ですか?
String s = "text";
String s = new String("text");
解決方法は?
new String("text");
のインスタンスを明示的に作成します。
String
オブジェクトを作成します。
String s = "text";
のインスタンスを再利用することができます。
文字列定数プール
が利用可能であれば、それを使用します。
あなたは
ごくまれに
を使いたいと思うことはないでしょう。
new String(anotherString)
コンストラクタを使用します。APIから。
String(String original)
: を初期化します。 新しく作成されたString
つまり、新しく生成された文字列は引数の文字列のコピーです。文字列は不変なので、元の文字列の明示的なコピーが必要でなければ、このコンストラクタを使用する必要はありません。
関連する質問
リファレンシャル・ディスティンクションの意味するもの
次のスニペットを調べてみてください。
String s1 = "foobar";
String s2 = "foobar";
System.out.println(s1 == s2); // true
s2 = new String("foobar");
System.out.println(s1 == s2); // false
System.out.println(s1.equals(s2)); // true
==
を2つの参照型で比較することは、参照同一性の比較です。二つのオブジェクトは
equals
は必ずしも
==
. を使用することは、通常、間違っています。
==
参照型では、ほとんどの場合
equals
を使用する必要があります。
それでも、何らかの理由で2つの
equals
でなく
==
の文字列を使用する場合、あなたは
可
を使用します。
new String(anotherString)
コンストラクタを使用します。しかし、もう一度言っておく必要があるのは、これは
非常に
は特殊であり、意図したものであることはほとんどありません。
参考文献
関連事項
関連
-
[解決済み] ストリングビルダー.イコール Java
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] Javaにおける "implements Runnable "と "extends Thread "の違いについて
-
[解決済み] StringBuilderとStringBufferの違いについて
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
-
[解決済み] JDKとJREの違いは何ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaでFileFilterを作るには?
-
[解決済み] Application startメソッドで例外が発生する。JavaFx 11
-
[解決済み] コレクションへの共有参照が見つかりました org.hibernate.HibernateException
-
[解決済み] javax.mail.MessagingException: SMTPホストに接続できませんでしたか?
-
[解決済み] ORA-01654: インデックスを拡張できません。
-
[解決済み] 1行目2列目でBEGIN_ARRAYを期待したが、BEGIN_OBJECTだった。
-
[解決済み] JDBC タイプの方言マッピングがありません。1111
-
[解決済み] Eclipseでクラスとそれに対応するファイルの名前を変更する方法は?
-
[解決済み] Javaでdoubleをfloatに変換する
-
[解決済み] Java String宣言 [重複]。