栈溢出的原因及解决办法是什么(的三种情况及解决办法)
生活随笔
收集整理的這篇文章主要介紹了
栈溢出的原因及解决办法是什么(的三种情况及解决办法)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本教程操作環境:windows7系統、java8版、DELL G3電腦。
Java堆溢出
原因:創建的對象的總容量超過了堆的最大容量。
溢出類型:java.lang.OutOfMemoryError。
解決方法:
-
排查是因為內存溢出還是內存泄漏導致的:通過性能監測工具如jconsole,獲取堆內存快照,查看導致溢出的對象是不是必要的,不是的話就是泄漏,是的話就是溢出。
-
內存泄漏:查看導致溢出的對象的GC ROOTS引用鏈,根據引用鏈找到具體的內存泄漏的位置,進行修改。
-
內存溢出:檢查JVM的堆參數設置(-Xmx:JVM最大內存與-Xms:啟動初始內存),看是否還有向上調整的空間;再從代碼上檢查是否有些對象的生命周期過長,或者存儲上設計不合理等問題。
相關視頻教程推薦:Java視頻教程
以上就是棧溢出的原因及解決辦法是什么的詳細內容,更多請關注風君子博客其它相關文章!
總結
以上是生活随笔為你收集整理的栈溢出的原因及解决办法是什么(的三种情况及解决办法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ws831是千兆路由吗
- 下一篇: x和xs黑边一样大吗(English)