目次
同一性と同値性とは
同一性と同値性はどちらも、比較している変数が”同じ”であるかを真偽値(true,false)で評価します。
①同一性
・==演算子で判定する
・複数の変数が同じインスタンスを参照している場合、trueを戻す。
②同値性
・equalsメソッドで判定する
・インスタンスは異なるが同じ値を持っている場合、trueを戻す。
実行例
// 同じ値を持つ2つのStringオブジェクトを作成
String str1 = new String("hello");
String str2 = new String("hello");
// 同一性の比較
System.out.println("同一性の比較:");
System.out.println("str1 == str2: " + (str1 == str2)); // false
// 同値性の比較
System.out.println("同値性の比較:");
System.out.println("str1.equals(str2): " + str1.equals(str2)); // true
// 同一のオブジェクトを指す2つの参照変数を作成
String str3 = "hello";
String str4 = str3;
// 同一性の比較
System.out.println("同一性の比較:");
System.out.println("str3 == str4: " + (str3 == str4)); // true
// 同値性の比較
System.out.println("同値性の比較:");
System.out.println("str3.equals(str4): " + str3.equals(str4)); // true
出力結果
同一性の比較:
str1 == str2: false
同値性の比較:
str1.equals(str2): true
同一性の比較:
str3 == str4: true
同値性の比較:
str3.equals(str4): true
まとめ
Javaにおける同一性と同値性は、オブジェクトの比較において重要な概念です。同一性はオブジェクトのメモリ上の場所を比較し、同値性はオブジェクトの値を比較します。
(Visited 307 times, 4 visits today)
コメント