04/01/19 21:18
さらに、上記がわかるとObjectクラスの①==と②equalsメソッドの使い分けが理解できます。
(受験者は必須の知識です。)
①
if(str == str2)
== は同じStringオブジェクトを参照しているかどうかをたずねています。
つまり、strとstr2の中の値(アドレス)が同じかどうかをたずねられています。
strとsrt2の値(アドレス)は同じなので、if(str == str2)はtrueになり、
strとsrt3の値(アドレス)は異なるので、if(str == str3)はtrueになります。
②
if(str.equals(str2))
equalsはstrとstr2が同じ文字列を保持しているかどうか
つまり、strとstr2が指すStringオブジェクトのインスタンスの中身が同じかたずねています。
この場合str、str2、str3が指すオブジェクトのインスタンスの中身は全て("OK")ですので、
どの組み合わせでもtrueになります。