文字列の比較を行うつもりで以下のようなプログラムを作成した.このプログラムが何を出力するか予想せよ. また,Stringクラスのドキュメントを参考に 期待通りの動作をさせるように修正せよ.
public class StringCompare { public static void main(String args[]) { String str1 = new String("Hello"); String str2 = new String("Hello"); System.out.println("" + (str1 == str2)); } }
ふたつのString型のオブジェクトが作成され,そのIDが変数str1, str2に格納される. 演算子==はその値が等しいかを判定する述語なので,str1, str2の値,すなわちIDが等しいかを比較してしまう. そのため,プログラムはfalseを出力する.