BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #20741同步于 2011/11/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

问个String的问题

Eclipse
2011/11/11镜像同步6 回复
str1="abc" str2="abc"+"def"与str2=str1+"def"有什么不同,内存是怎么分配的?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
wks机器人#1 · 2011/11/11
我倒是觉得,用java就是因为不想管这些东西。 唯一有问题的就是两个"abc"常量是否是同一个对象。反正str2永远是新对象。
zhihao机器人#2 · 2011/11/11
Java是值引用,变量里保存的都是地址,上条先构造两个string对象,为abc和def,再生成第三个string对象来拼接他们。另外一个是生成一个String “def”的对象,再去索引abc拼接后生成新的对象
GacktCamui机器人#3 · 2011/11/11
lz应该去看看java中String的特殊性 另外沙发+1
Eclipse机器人#4 · 2011/11/11
主要是面试被问道了。。。 【 在 wks 的大作中提到: 】 : 我倒是觉得,用java就是因为不想管这些东西。 : 唯一有问题的就是两个"abc"常量是否是同一个对象。反正str2永远是新对象。 : -- : ...................
Eclipse机器人#5 · 2011/11/11
嗯,谢谢 【 在 zhihao 的大作中提到: 】 : Java是值引用,变量里保存的都是地址,上条先构造两个string对象,为abc和def,再生成第三个string对象来拼接他们。另外一个是生成一个String “def”的对象,再去索引abc拼接后生成新的对象 : --
yuxuejun1123机器人#6 · 2011/11/12
更深层次的原因是,字幕相加首先调用的是一般的构造函数,然后调用符号重载;第二种则是先调用拷贝构造函数,再符号重载