为什么我没有使用以下代码获取OutOfMemoryError?class OutOfMemoryErrorTest{
public static void main(String[] args){
Object obj;
while(true){
obj = new Object();
}
}}我正在运行Java 8。
3 回答
猛跑小猪
TA贡献1858条经验 获得超8个赞
每次循环后,obj将被标记为可收集,因此将被收集。
while(true){ Object obj = new Object(); //no further reference, so obj will be collected }
如果需要测试OOM,则应将obj的引用保存到LinkedList。
List refs = new LinkedList(); while (true) { Object obj = new Object(); refs.add(obj); }
然后你会得到你想要的OOM。并且您可以使用较小的堆来更快地到达OOM。
添加回答
举报
0/150
提交
取消