当两个字符串常量“z”和“s”进行拼接时,会先从字符串常量池中进行查找是否存在"zs"这个字符串,如果存在则直接指向该字符串常量,如果不存在则在堆内存new一个String对象并将地址值传给拼接结果。
当两个字符串变量c和d进行拼接时,会直接在堆内存new一个String对象并将地址值传给拼接结果。
所以最后a和b指向的都是常量池中“zs”的地址,a==b的结果为true。
而c+d的结果都是在堆内存中new出的String对象的地址值,所以和a、b的地址值不相等。
03-26
1529
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交