在以下代码中将创建多少个对象:for (int i= 0;i<10; i++){ String a = new String("abc"); }for (int i= 0;i<10; i++){ String a = "abc"; }
3 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
正如在字符串对象和字符串文字之间的差异中所回答的
在第一个 for 循环中(因为使用了新字符串)将创建 10 个对象,在第二个 for 循环中仅创建一个对象并将被重用(因为它将存储在字符串池中)。
12345678_0001
TA贡献1802条经验 获得超5个赞
字符串"abc"将被创建并放入字符串池
String a = new String("abc")会"abc"在字符串池中找到字符串,创建新的对象字符串,不放入字符串池
共创建11个字符串,只有一个"abc"放入字符串池
for (int i= 0;i<10; i++){
String a = new String("abc");
}
字符串"abc"将被创建并放入字符串池中。
String a = "abc"将"abc"在字符串池中找到存在的字符串,并且引用a将指向同一个字符串对象"abc"。
总共将创建 1 个字符串放入字符串池
for (int i= 0;i<10; i++){
String a = "abc";
}
添加回答
举报
0/150
提交
取消