Java Silver 第4回 『同一性と同値性の概念とは』

目次

同一性と同値性とは

同一性と同値性はどちらも、比較している変数が”同じ”であるかを真偽値(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 154 times, 1 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

株式会社NEUGATEは、都内で企業研修や職業訓練を運営している会社です。主に、IT系の教育事業に力を入れています。
この記事は、株式会社NEUGATEの教育事業部が執筆をしています。

企業ホームページ:https://neugate.co.jp/

コメント

コメントする

目次