1.String str1 = "abc";
String str2 = "abc";
sysout(str1==str2) 为 TRUE
解释:栈中str1和str2都直接指向常量池中“abc”,==比较地址,地址一样。
2.
String str1 = "abc";
String str2 = new String(“abc”);
sysout(str1==str2);为FALSE
解释:str1指向常量池中“abc”,str2指向堆中新开辟的空间,所以地址不一样。
3.
String str1 = "abc";
Stirng str2 = “ab”;
str2=str2+“c”;
sysout(str1==str2);为FALSE
解释:str1指向常量池“abc”,str2指向堆中新开辟的空间,故地址不同。
4.
String str1 = new String(“abc”);
String str2 = new String(“abc”);
sysout(str1==str2);为FALSE
解释:str1指向堆中开辟的空间,str2在堆中又重新开辟了空间,两者并不是同一个空间,故地址不同。