爲什麼下面的java代碼給出的答案爲:爲什麼這個Java代碼給出了不同的答案?
不等於
相等。
代碼:
String a=new String("abc");
String b=new String("abc");
String c="abc";
String d="abc";
if(a==b){
System.out.println("equal");
}else{
System.out.println("not equal");
}
if(c==d){
System.out.println("equal");
}else{
System.out.println("not equal");
}
我很困惑,什麼是兩個語句
String a=new String("abc");
String c="abc";
在不同的方式?
簡而言之,這兩個作業有什麼區別?
任何幫助將不勝感激。
謝謝
這已被問** **多次**之前。這裏是一個解釋:http://stackoverflow.com/a/334613/367273 – NPE
你應該看看[String.intern()](http://docs.oracle.com/javase/6/docs/api/java /lang/String.html#intern%28%29)並仔細研究。 '所有文字字符串和字符串值常量表達式都被禁用。' – OldCurmudgeon