为了账号安全,请及时绑定邮箱和手机立即绑定

在for循环中,java会创建多少个对象?

在for循环中,java会创建多少个对象?

宝慕林4294392 2021-10-13 16:46:46
在以下代码中将创建多少个对象: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 循环中仅创建一个对象并将被重用(因为它将存储在字符串池中)。


查看完整回答
反对 回复 2021-10-13
?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

第一个循环将创建 10 个不同的对象,第二个将只有一个,因为文字对象字符串在编译时只创建一次,每次请求编译器都会返回相同的引用。


查看完整回答
反对 回复 2021-10-13
?
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"; 

}


查看完整回答
反对 回复 2021-10-13
  • 3 回答
  • 0 关注
  • 388 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信