按照Java的重点介绍==是比较两个对象是否相等,且Java中对String的赋值都是产生一个新的对象,原有的字符串变成了垃圾内存。但我用下面的类测试了一下,却得到了两种截然不同的结果,不知何解?
class StringTest {
public static void main(String args[]) {
String str1="Hellow World";
String str2="Hellow World";
String str3=new String("Hellow World");
String str4=new String("Hellow World");
if (str1==str2) {
System.out.println("str1==str2");
} else{
System.out.println("str1!=str2");
}
if (str3==str4) {
System.out.println("str3==str4");
} else{
System.out.println("str3!=str4");
}
}
输出结果为 str1==str2 str3!=str4
按照Java的解释,得到的结果应该都是不等于啊?
|
|