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回收,这点很重要)。
也就是说第二种方法能更好的管理内存。