Javaの勉強をしています。
オブジェクトを比較するときに同一性と同値性という違いがあります。
public class CompareStringBuilder { public static void main(String[] args) { var builder1 = new StringBuilder("あいう"); var builder2 = new StringBuilder("あいう"); System.out.println(builder1 == builder2); // 1 System.out.println(builder1.equals(builder2)); // 2 } }
上記の1は、違う同一性を比較しているのでfalseになります。
2は、同値性を比較しているのでtrueになると思ったのですが、1も2もfalseでした。
なぜでしょうか?
ちなみに、独習Javaというテキストのp92-93の内容です。
equalsのサンプルコードの表記が無いので、書き方が間違っているのかもと思い、投稿してみました。
よろしくお願いします。
同値性はこんな風にはできないのでしょうか。
System.out.println(builder1.toString().equals(builder2.toString()));
回答3件
あなたの回答
tips
プレビュー