文字列の比較を行うつもりで以下のようなプログラムを作成した.このプログラムが何を出力するか予想せよ. また,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を出力する.