楽落人の備忘録

楽して生きていきたい。知識とか覚えておきたくない。

java stringの比較

String s = new String("あいうえお");
String t = new String("あいうえお");

boolean a = (s==t);
System.out.println(a);  //①

boolean b = (s.equals(t));
System.out.println(b);  //②

 

上記の場合、①は「false」②は「true」となる。

①は異なるオブジェクトを比較しているため「false」となる。

②はequalsメソッドにより参照先の文字列自体を比較しているため「ture」となる。

 

また

 

String s = "あいうえお";
String t = "あいうえお";

boolean a = (s==t);

と明示的にnewしない場合はすでに作成済みのオブジェクトを参照するため

aの比較結果は同一のオブジェクトを比較しているためtrueとなる。