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 .
缺点是什么:
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 .