非淡泊无以明志,非宁静无以致远。非学无以广才,非志无以成学。

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自动回收.

结论:

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

posted @ 2020-04-01 18:53  Happy丶小鱼  阅读(3337)  评论(0编辑  收藏  举报