Thread sleep 与GC的关系

weixin_43821585 weixin_43821585 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
当-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();
}
}
}
...全文
评论 1
收藏 已收藏
分享
返回顶部
weixin_43821585
Java SE 62,620 成员 307,251 内容