using/creating 字符串对象在循环中的缺点

Disadvantages of using/creating String objects in a loop

缺点是什么:

for(int i=0;i<10;i++)
{
    String str = ""+i;
    System.out.println(str);
}

超过:

 String str;
 for(int i=0;i<10;i++)
 {
     str = ""+i;
     System.out.println(str);
 }

和:

 for(int i=0;i<10;i++)
 {
     StringBuilder strBld = new StringBuilder("Hello"+i);
     System.out.println(strBld.toString());
 }

关于在内存中创建的对象总数?

在所有三个场景中创建的对象数量相同。

您可以使用

进行验证
 Runtime rt = Runtime.getRuntime();
 System.out.println("Free: " + rt.freeMemory());
  for(int i=0;i<10;i++)// To get a measurable diffrence iterate upto higher value
  {
     String str = ""+i;
     System.out.println(str);
  }
  System.out.println("Free: " + rt.freeMemory());

因此,基于创建对象的数量,它们并没有劣势。

如果你想知道when to use StringBuilder in java over String 检查提到 link .