本帖最后由 l763631191 于 2015-5-27 23:31 编辑
String s1 = "a"; 是一个对象
String s2 = "b"; 又一个对象
String s3 = "ab"; 又一个对象
此时内存中有3个字符串对象 所以内存中开辟了3个空间,有3个内存地址
所以s3 == s1 + s2 肯定是假的
"a" + "b"即为:“ab” 有了第4个对象 String s4=“ab”;
当字符串的内容一样时,就不会再开辟空间了而是把s3的字符串对象放在常量池中(位于共享区)。
s3 s4指向的都是同一个地址了,所以相等。
|