在java中,对于基本数据类型而言,==比较的是变量的数值大小;对于引用而言比较的则是变量在内存中的地址.
但是对于String类而言,比较特殊,如果是重新new出来的,则即使变量存储的内容相同也认为是不同变量,一句话
new是开辟新的区域.
代码如下:public class TestString {
public static void main(String[] args) {
String str1="hello";
String str2=new String("hello");
String str3="he"+new String("llo");
String str4="hello";
String str5=new String("hello");
//因为str2是new出来的,所以即使和str1是相同值,但二者不相等
System.out.println("str1==str2?"+(str1==str2));//false
System.out.println("str1==str3?"+(str1==str3));//false
System.out.println("str1==str4?"+(str1==str4));//true
System.out.println("str2==str5?"+(str2==str5));//false
}
}