java.lang.OutOfMemoryError總結(待續。。。)

總結目的

  1. 通過代碼驗證java虛擬機運行時區域存儲的內容;
  2. 工作中如果遇到內存溢出問題,能夠根據反饋的異常信息快速判斷哪個內存區域發生溢出

Java堆內存溢出

報錯信息:java.lang.OutOfMemoryError:Java heap space

原因可能是內存泄漏或者創建太多對象導致內存不足

Java虛擬機棧和本地方法區棧

報錯信息:

1.stackOverFlowError(棧的深度大於最大深度)

原因可能是方法遞歸調用過多

2.OutOfMemeoryError(擴展棧時無法申請到足夠的內存)

原因可能是系統內存不足,無法創建新的線程

 Metaspace內存溢出

報錯信息:java.lang.OutOfMemoryError: Metaspace

原因可能是系統的代碼非常多或引用的第三方包非常多或者通過動態代碼生成類加載等方法

直接內存

報錯信息:java.lang.OutOfMemoryError

解決辦法

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章