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 307 times, 4 visits today)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

エヌ・キャリア・アカデミーは「21世紀のこれからの激変する社会を生き抜き、第一線で活躍することのできる人材を世に送り出していく」ことを教育理念にかかげ、IT系の職業訓練を実施している職業訓練校です。

この記事は、エヌ・キャリア・アカデミーのスタッフが執筆しています。

企業ホームページ:https://n-career.jp/

コメント

コメントする

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

目次