返回信息流String a=new String("abc");
String b=new String("abc");
String c="abc";
关于new是否一定会创建新的对象呢,声明b和c的时候,是直接指向了a指向的对象,还是指向了新建的abc对象
这是一条镜像帖。来源:北邮人论坛 / java / #39876同步于 2015/4/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
求问到底堆内存中创建几个对象
a2430226066
2015/4/10镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
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";
: ...................
【 在 dss886 的大作中提到: 】
: String a = new String("abc");
: String b = new String("abc");
: String c = "abc";
: ...................
谢谢,膜拜[ema35]
【 在 a2430226066 的大作中提到: 】
: String a=new String("abc");
: String b=new String("abc");
: String c="abc";
: ...................
LZ可以看这个链接
http://www.javaranch.com/journal/200409/ScjpTipLine-StringsLiterally.html
【 在 AAAMWAAA 的大作中提到: 】
:
: LZ可以看这个链接
: http://www.javaranch.com/journal/200409/ScjpTipLine-StringsLiterally.html
3(ーー゛)q
字符串常量池中只有一个abc a和b指向的堆内存中的对象是不一样的,但是这两个对象指向的对象与c指向的对象是同一个,就是方法区中的字符串常量池中的"abc"。
【 在 a2430226066 的大作中提到: 】
: String a=new String("abc");
: String b=new String("abc");
: String c="abc";
: ...................
2个吧。。。小白来看大神回复