natsu647 发表于 2015-3-28 23:13
这里的s1 , s2 都是对象 ,所以s3 == s1 + s2 只是判断s3与( s1 + s2 )是否是同一个内存地址。
判断内容 ...
hhh233 发表于 2015-3-28 23:26
没有new 应该都在常量池里吧
复仇的撒旦 发表于 2015-3-28 23:37
String是一个类,所以s1和s2都在堆内存中,比较的是默认地址值,2楼正解
hhh233 发表于 2015-3-29 08:46
String s1 ="a";String s2 ="a";
s1==s2 这个结果为true 是说明他们默认的地址是一样的吗?
...
P李勇 发表于 2015-3-29 20:00
我想问的是s3==“a”+“b”为什么true啊
第一个倒是明白。。。
_etc 发表于 2015-3-29 20:09
字符串的值不能改变。存在内存中就不能改变,"ab"早就存在在内存中了。
P李勇 发表于 2015-3-29 20:17
a+b没有构造新的字符串哈,是去之前构造中找的,找到了所以返回的和s3的地址一样,所以true哈? ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |