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

在以下代码中将创建多少个对象:


for (int i= 0;i<10; i++){

  String a = new String("abc"); 

}


for (int i= 0;i<10; i++){

  String a = "abc"; 

}


宝慕林4294392
浏览 389回答 3
3回答

猛跑小猪

正如在字符串对象和字符串文字之间的差异中所回答的在第一个 for 循环中(因为使用了新字符串)将创建 10 个对象,在第二个 for 循环中仅创建一个对象并将被重用(因为它将存储在字符串池中)。

Smart猫小萌

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

12345678_0001

字符串"abc"将被创建并放入字符串池String a = new String("abc")会"abc"在字符串池中找到字符串,创建新的对象字符串,不放入字符串池共创建11个字符串,只有一个"abc"放入字符串池for (int i= 0;i<10; i++){&nbsp; String a = new String("abc");&nbsp;}字符串"abc"将被创建并放入字符串池中。String a = "abc"将"abc"在字符串池中找到存在的字符串,并且引用a将指向同一个字符串对象"abc"。总共将创建 1 个字符串放入字符串池for (int i= 0;i<10; i++){&nbsp; String a = "abc";&nbsp;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java