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


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

以上分别为在循环里与循环外new对象。

在循环里就相当于为100个引用了100个对象分配内存,直到内存不足会被GC释放。

在循环外使用1个引用分别100次调用了100个对象所以当后一个对象init后,前一个对象已经是“无引用状态”,会很快的被GC自动回收(在你的循环还未结束时,可能已经进行了多次GC回收,这点很重要)。

也就是说第二种方法能更好的管理内存。

Last modification:October 23, 2019
如果觉得我的文章对你有用,请随意赞赏