A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© quan23355 中级黑马   /  2013-11-24 14:44  /  1126 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String s = "Hello";s = s + " world!";这两行代码执行后,原始的String对象中的内容有没有改变?还是新建一个对象后把s的引用重新指向这个对象?
String s = "Hello world!"在底层有何区别?



评分

参与人数 1技术分 +1 黑马币 +5 收起 理由
枫儿 + 1 + 5 神马都是浮云

查看全部评分

3 个回复

倒序浏览
貌似木有区别。同一块内存。你可以用eaual和==测试下。
回复 使用道具 举报
String s = "Hello";s = s + " world!" 之后s的值会变成 hello world,但s的已经重新指向Hello world 这个地址,之前的hello 已经没有对象引用,但占用内存,所以字符串相加,一般用stringbuilder. String对象之间的相加底层还是调用Stringbuilder进行字符串合并。

评分

参与人数 1技术分 +1 黑马币 +5 收起 理由
枫儿 + 1 + 5 赞一个!

查看全部评分

回复 使用道具 举报
第一个是一个字符串,后面是两盒字符串相加得出Hello World。在内存是s所指向地址的改变吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马