Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

文字列の比較

初心者です。
文法を勉強しています。

String as = new String("文字列");
String bs = new String("文字列");
String cs = "文字列";
String ds = "文字列";

as==bsとas==csとbs==csがfalseで、cs==dsがtrueみたいです。
書籍に、同じ文字列を使って初期化されたString型変数は同じオブジェクトを参照すると書かれてたので、「文字列」という同じ文字列だしfalseになるのが判りません。

String as = new String("文字列");はどういう意味でしょうか?
String cs = "文字列";はどういう意味でしょうか?

5

回答

4137

閲覧

5件の回答

評価

0

インスタンスについて勉強しよう。
それから文字列の比較方法だな。
まずは自分で調べてみる。

評価

0

new はインスタンスを作ります。
"文字列" は四つありますが、書籍の通りインスタンスは一つ。
しかし new String がそのインスタンスを元に新しいインスタンスを
作るので as bs は異なるインスタンスになります。

評価

0

なるほどですね。

申し訳ございませんが、もう一つ教えてください。
as==csとbs==csがfalseなのはどうしてなのでしょうか?

評価

0

new は毎回新しいインスタンスを作ります。
他にももっとややこしい規定がありますから同じインスタンスに
なるかどうかはあまり気にしない方がいいと思います。
もし気になるなら Java の言語仕様をしっかり読んででください。

評価

0

鸚鵡返しにしないで自分で調べてみよう。
それができなければ、いつまでも初歩的なことを質問し続けることになるだろう。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。