循环内的java内存分配

时间:2014-03-16 22:15:56

标签: java memory

我试图理解在循环之外声明我的String s1与循环内部的好处(如下所示)。

for (int i=0;i<1000;i++)
{
  String s1 = createString(1000);
}

我相信s1只是引用作为createString()的一部分实例化/分配的String,因此它不会真正导致任何额外的内存开销。 无论String s1是否在循环外部声明,内存使用情况都是相同的,如下所示:

  • createString()内存分配= 4个字节/字符* 1000个字符* 1000次= 4M
  • createString()实例化String = 40字节/实例* 1000次= 40K
  • s1内存分配=零。
  • s1 instantiation = zero。

在循环外声明字符串有什么好处吗?

2 个答案:

答案 0 :(得分:0)

s1 += createString( );将分配1000x

答案 1 :(得分:0)

在内存方面没有区别,但就好处而言,你无法在for循环之外引用s1。