Javaの基本比較問題

Javaにおける「== 演算子」と「equals()メソッド」の違いとして正しいものはどれですか?

A.== 演算子は文字列の内容を比較し、equals()メソッドは参照(アドレス)を比較する
✗ 説明が逆です。== はアドレス(参照)を比較し、equals()は内容を比較するのが一般的な用途です。
B.== 演算子は参照(オブジェクトのアドレス)を比較し、equals()メソッドはオブジェクトの内容を比較する← 正解
✓ 正解です。== は参照の同一性を比較し、equals()はオブジェクトの値・内容の等価性を比較します。
C.== 演算子とequals()メソッドは常に同じ結果を返す
✗ 誤りです。異なる参照を持つ同内容のオブジェクトでは、== はfalseでもequals()はtrueを返すことがあります。
D.equals()メソッドはプリミティブ型にのみ使用でき、== 演算子はオブジェクトにのみ使用できる
✗ 誤りです。equals()はObjectクラスのメソッドでありプリミティブ型には使えません。== はプリミティブ型にもオブジェクトにも使えます。

Oracle Certified Java Programmer, Bronze SE の問題一覧