String和newString

为什么String和newString之后,s1和s4的地址值应该是不一样的啊,为什么地址值没有发生变化呢? 这是debug过程图

img

那是value的地址 不是String的地址

你写一下s2=s3,看一下返回的布尔值是true 还是false

newString 是产生一个新对象,与常量池中的不是同一个。可以输出 s1==s2, s2==s3, s3==s4 看看它们的地址是否相等。只比较内容用 s1.equals(s3)