halohoop 发表于 2015-7-28 10:49
如果你能回答
System.out.println(s3.equals(s1+s2));
为什么是true的话你就知道了!
122125241 发表于 2015-7-28 11:05
s3==s1+s2
s3== "Hello"+"World"
这俩你知道了么,你可以试试 还有反编译看下 自己看出来的才是最理解的 ...
zhaoyue 发表于 2015-7-28 21:27
我也是今天刚学的。楼主是在传智上课的吗?
老师讲S1+S2时要创建对象,所以地址值不同,用==号比较的时候比 ...
wayonEmes 发表于 2015-7-28 10:54
这个我知道啊,是String类重写了Object中的equals方法,比较的是字符串的值
==好像是比较的地址值,可是为什 ...
wode1311 发表于 2015-7-31 23:07
String是一个引用类型,+仅仅是字符串的拼接,而==比较的是引用类型的地址值,结果当然是false了。 ...
wode1311 发表于 2015-7-31 23:07
String是一个引用类型,+仅仅是字符串的拼接,而==比较的是引用类型的地址值,结果当然是false了。 ...
Apol 发表于 2015-7-31 22:45
它们是没有用关键字new创建的对象,上面两个字符串的内容相同,在内存中只开辟一块空间,是同一个对象, ...
天地一沙鸥 发表于 2015-7-31 22:20
这个涉及到一点常量池的内容,注意,变量相加的时候会自动开辟新空间,常量相加会在常量池中去寻找是否有一 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |