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自动回收.
结论:
第二种方法能更好的管理内存。