请问一下,2-9选择题

来源:2-15 选择题

qq_盗梦者_2

2017-09-11 07:53:28

请问一下,当执行完str1.concat(str2),之后,str是指向HelloHello,还是指向原来的Hello?还是说生成的HelloHello只是放在常量池中?那如果str不是用new创建的会不会有影响?

写回答

2回答

慕运维2858188

2017-09-11

str1.concat(str2) 后, str 指向了常量池的HelloHello 

不管new 没new 常量池里都有一个新的字符串常量,并指向它

可以对比下面的理解

String s1 = "hello";


String s2 = "hel".concat("lo");
String s3 = "hel"+"lo";


System.out.println(s1 == s2);   // false
System.out.println(s1 == s3);   // true


0
hq_盗梦者_2
回复
hrista23
h 这样我就理解了,谢谢老师的细心解答
h017-09-11
共9条回复

大饼蓝

2017-10-29

http://img.mukewang.com/climg/59f5c235000123ff04800520.jpg

把老师给你回复的内容仔细看看,然后你再看看这张图,s1和s3指向的时同一个对象,所以s1 == s3 为true;s1 == s2 为false,因为s1和s2指向的时不同的对象,所以地址也不同。

0

0 学习 · 7235 问题

查看课程