例子
public static void main(String[] args) {
String str1 = "aaa";
String str2 = "aaa";
System.out.println(str1 == str2);
String str3 = new String("aaa");
String str4 = new String("aaa");
System.out.println(str3 == str4);
}
我们知道 == 比较引用类型是比较的引用地址,可以发现第一个输出true
,第二个输出false
,这是因为str1和str2都指向字符串常量池中的 “aaa” 的引用地址 , 而str3和str4 创建了一个新对象 ,“凡是new出来的都存在堆(Heap)内存中”,是在堆内存中的, 不一样的引用地址。