僕はJavaで文字列の比較をするときは、String#equals()を使って比較するしなさいって習った。先生の説明に(文系の大学だけどなぜかJavaの講義があった)にも納得してString#equals()を使い続けてた。 Stringはプリミティブ値じゃなくてオブジェクトになるので==を利用すると、その文字の比較ではなくて同一参照か否かを確認するから結果はfalseになっちゃうよという説明。中途半端に知っていたのでその説明には納得。でも違った。 class Test { public static void main(String args[]) { String str1 = "Hello"; String str2 = "Hello"; if(str1 == str2){ System.out.println("実行されちゃう><。"); } String str3 = new S