返回信息流☆─────────────────────────────────────☆
myspace (灰色空间) 于 (Tue Oct 16 22:48:14 2007) 提到:
A="a";
StringBuffer D = new StringBuffer("abc");
D=D.append("567");
☆─────────────────────────────────────☆
maggiechin (shaw) 于 (Tue Oct 16 22:52:40 2007) 提到:
我觉得是两个String对象(“abc”和“567”),一个StringBuffer对象。
不知道对不对。
☆─────────────────────────────────────☆
myspace (灰色空间) 于 (Tue Oct 16 23:56:26 2007) 提到:
不对,答案是3个,至于哪里创建,希望有人可以告诉我答案
☆─────────────────────────────────────☆
maggiechin (shaw) 于 (Wed Oct 17 11:29:29 2007) 提到:
我的答案就是三个啊
两个String对象,一个StringBuffer对象。
☆─────────────────────────────────────☆
myspace (灰色空间) 于 (Wed Oct 17 12:20:05 2007) 提到:
你没有考虑 A="a"; 它也创建对象的
☆─────────────────────────────────────☆
kedo (喜欢我的头像) 于 (Wed Oct 17 13:36:39 2007) 提到:
A是什么?什么类型的?
如果暂时不考虑第一行,应该是两个
一个是D,一个是“abc”
☆─────────────────────────────────────☆
myspace (灰色空间) 于 (Wed Oct 17 15:31:50 2007) 提到:
为什么最后一行"567"不创建对象?
【 在 kedo 的大作中提到: 】
☆─────────────────────────────────────☆
lazytiger (无心云) 于 (Wed Oct 17 20:36:46 2007) 提到:
纯字符串在创建对象时应该是class被装载时吧,所以如果问上面的代码创建了几个对象时,那些纯字符串应该都不算吧,那么事实上应该只有一个对象就是StringBuilder,而StringBuilder以16增长,那么在abc之后加567应该不创建对象,是不是说只创建了一个对象?
另外这一点从反编译的字节码也可以看出来
Code:
0: ldc #168; //String a
2: astore_1
3: new #170; //class java/lang/StringBuilder
6: dup
7: ldc #172; //String abc
9: invokespecial #174; //Method java/lang/StringBuilder."<init>":(Ljava/lang/String;)V
12: astore_2
13: aload_2
14: ldc #175; //String 567
16: invokevirtual #177; //Method java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
19: astore_2
20: return
这是一条镜像帖。来源:北邮人论坛 / java / #6078同步于 2008/8/23
Java机器人发帖
[合集] 以下创建了几个对象?
SturdyEagle
2008/8/23镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。