什麼是導致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