String str1 = new String("I love programming");
String str2 = new String("I love programming");
boolean boo = str1 == str2; // evaluates to false
String str1 = "I love programming";
String str2 = "I love programming";
boolean boo = str1 == str2; // evaluates to true
为什么第一个求值为假,而第二个求值为真?
在这里你可以找到更多信息:Java字符串池是什么,"s"和new String("s")有何不同?