当-Xmx20m -Xmn10m时为什么加了Thread.sleep(10)就能正常回收了呢,虽然时回收了但main在引用着list,不是应该不让它回收才是吗?
package _2_4;import java.util.ArrayList;
import java.util.List;
import java.util.Timer;/**
 * Java 堆溢出
 * Java堆内存的OOM异常
 * @author Administrator
 * -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError
 */public class HeapOOM {
static class OOMObject{

}

public static void main(String args[]){
try{
Thread.sleep(10000);
HeapOOM heapOOM = new HeapOOM();
heapOOM.test(); }catch(Exception e){
e.printStackTrace();
}
} public void test(){
try{
List<OOMObject> list = new ArrayList<>();
while(true){
// Thread.sleep(10);
list.add(new OOMObject());
}
}catch(Exception e){
e.printStackTrace();
}
}
}