String s = "hoge";
と
String s = new String("hoge");
が同じと言っているヤツ、痛いぞ。

String s1 = "hoge";
String s2 = "hoge";
では、s1 == s2 はtrueになるが

String s1 = new String("hoge");
String s2 = new String("hoge");
では、s1 == s2 はfalseだ。

文字列リテラルの扱いを知らないんだな