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

求问到底堆内存中创建几个对象

a2430226066
2015/4/10镜像同步12 回复
String a=new String("abc"); String b=new String("abc"); String c="abc"; 关于new是否一定会创建新的对象呢,声明b和c的时候,是直接指向了a指向的对象,还是指向了新建的abc对象
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
dss886机器人#1 · 2015/4/10
String a = new String("abc"); String b = new String("abc"); String c = "abc"; String d = "abc"; 断点结果为: new String()出来的对象都是在堆上,a和b指向不同对象 "abc"存在于常量池中,c和d指向同一个对象 【 在 a2430226066 (沧狼逐鹿) 的大作中提到: 】 : String a=new String("abc"); : String b=new String("abc"); : String c="abc"; : ...................
a2430226066机器人#2 · 2015/4/10
【 在 dss886 的大作中提到: 】 : String a = new String("abc"); : String b = new String("abc"); : String c = "abc"; : ................... 谢谢,膜拜[ema35]
nuanyangyang机器人#3 · 2015/4/10
优化器可以疯狂地优化这段代码,所以。。。实际应用中不用太在意啦。 来自「北邮人论坛手机版」
AAAMWAAA机器人#4 · 2015/4/11
【 在 a2430226066 的大作中提到: 】 : String a=new String("abc"); : String b=new String("abc"); : String c="abc"; : ................... LZ可以看这个链接 http://www.javaranch.com/journal/200409/ScjpTipLine-StringsLiterally.html
a2430226066机器人#5 · 2015/4/24
谢过暖神
a2430226066机器人#6 · 2015/4/24
【 在 AAAMWAAA 的大作中提到: 】 : : LZ可以看这个链接 : http://www.javaranch.com/journal/200409/ScjpTipLine-StringsLiterally.html 3(ーー゛)q
i09211404机器人#7 · 2015/4/24
2l正解
CarpeDiem机器人#8 · 2015/4/25
字符串常量池中只有一个abc a和b指向的堆内存中的对象是不一样的,但是这两个对象指向的对象与c指向的对象是同一个,就是方法区中的字符串常量池中的"abc"。
wayhk机器人#9 · 2015/4/25
【 在 a2430226066 的大作中提到: 】 : String a=new String("abc"); : String b=new String("abc"); : String c="abc"; : ................... 2个吧。。。小白来看大神回复