什么是导致Java中堆溢出的简单方法?当内存消失时,我需要测试一些外部代码如何响应。如何耗尽堆
Q
如何耗尽堆
3
A
回答
2
不是添加元素添加到数组列表恕我直言简单
是刚刚绕过了中间商:
public static void main(String[] args) {
int[] a = new int[Integer.MAX_VALUE];
}
那么理论上不能保证导致OOME但由于ArrayList的使用数组内部本身,同样的限制适用于其他的解决方案以及..
0
创建ArrayList
和对象添加到它:
private static final List<String> list = new ArrayList<String>();
// ...
while(true) list.add("Hello World");
和,顺便说一句,这就是所谓的一个Memory Leak
。将会抛出OutOfMemoryError
。
而且,如果你想有一个StackOverflow上,你可以用一个无限递归方法做到这一点:
public void Foo(){Foo();}
StackOverflowError
将被抛出。
+2
只是增加一个数组的大小,直到它不适合内存不是一个内存“泄漏”......泄漏是你无法取消引用/释放某处的东西,所以它的内存不回收,最终导致你用尽内存。 – ColinD 2012-03-06 18:29:51
1
ArrayList<String> heapme = new ArrayList<String>();
while (true) {
heapme.add("I WANT TO HEAP MY VIRTUAL MACHINE TO DEATH PLZ!!! K THNX BIE!!!!");
}
2
如果你想要的是一个OutOfMemoryError
throw new OutOfMemoryError();
备注:int[] a = new int[Integer.MAX_VALUE];
只会在您拥有少于8 GB的堆空间时才会抛出OOME。
相关问题
- 1. 脚本堆栈空间耗尽firefox
- 2. Haskell非耗尽
- 3. GLES2 TouchEventPool耗尽
- 4. 如何防止GD耗尽内存?
- 5. 如何避免PHP内存耗尽?
- 6. Tensorflow耗尽资源
- 7. setImageResource耗尽内存
- 8. PHP内存耗尽
- 9. imagejpeg内存耗尽
- 10. java.lang.OutOfMemoryError:内存耗尽]
- 11. doseq通过一个简单的懒惰seq耗尽堆空间
- 12. 在循环查看充气期间在堆上耗尽内存堆
- 13. 在Haskell程序中从堆栈溢出或堆耗尽中恢复
- 14. Android:耗尽大量内存?
- 15. sidekiq重试耗尽参数
- 16. Excel会耗尽表名吗?
- 17. ACL2的GL时钟耗尽
- 18. Websphere线程正在耗尽
- 19. VB.NET:内存耗尽System.Drawing.dll
- 20. Tomcat连接池耗尽
- 21. gdb:虚拟内存耗尽
- 22. 计算耗尽时间
- 23. java.lang.OutOfMemoryError:[内存耗尽]在android
- 24. IIS耗尽的Oracle连接
- 25. 如何测试,如果一个PreparedStatement将要耗尽内存
- 26. 我会在这段代码后最终耗尽堆栈内存吗?
- 27. 如何拉取ArrayList中的数据,直到RAM没有耗尽
- 28. Oracle JDBC预取:如何避免RAM耗尽
- 29. 如何在定时器耗尽后打开模式弹出?
- 30. 如何让倒数计时器在耗尽时执行动作?
太棒了。这工作得很好。谢谢。 – User1 2012-03-06 18:30:53