字符串是放在字符串常量池中的。一旦一个字符串形成后就是不能改变的。String a = "ab"; 创建了字符串"ab", String b = "a" + "b";先不创建,先找常量池中有没有这样的常量字符串.如果有,直接指向.否则.重新创建一个.创建b的时候常量池中已经有"ab"了,所以就直接用"ab",所以a==b是true.
String a = "abc";
String b="ab";
String c=b+"c";
常量池中有"abc" "ab" "c" c=b+"c",因为b的存在,是一个新对象,然后加上"c"就又产生了一个新对象。所以c和a的地址值是不同的
|