java循环创建对象应该在循环体内还是循环体外

Posted Happy丶小鱼

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java循环创建对象应该在循环体内还是循环体外相关的知识,希望对你有一定的参考价值。

第一种:
    for(int i = 0; i < 100; i++) {
        Object obj = new Object()
    }

第二种:
    Object obj = null
    for(int i = 0; i < 10000; i++) {
        obj = new Object()
    }

第一次:

  Object obj = new Object();//写在100个循环内等于你有100个引用对应了100个对象

  所以100个对象在一段时间内都是会占用内存,直到内存不足GC主动回收.

第二次:
  obj = new Object();//写在100个循环内等于你使用1个引用分别100次调用了100个对象

  所以当后一个对象init后,前一个对象已经是“无引用状态”,会很快的被GC自动回收.

结论:

  第二种方法能更好的管理内存。

以上是关于java循环创建对象应该在循环体内还是循环体外的主要内容,如果未能解决你的问题,请参考以下文章

JAVA变量声明在循环体内还是循环体外

强烈求助!!JS 动态循环创建DIV

break 和 continue

java语言如何循环读取Map对象内的数据

Java JDBC Single Statement 对象在 while 循环之前和 while 循环内

如何避免在java中循环中频繁创建对象?