1. 程式人生 > >java 記憶體溢位-與gc

java 記憶體溢位-與gc

參考: https://www.jianshu.com/p/ddbd1e229c4c?from=groupmessage

感謝原作者

在日常中我們經常遇到這樣的錯誤:java.lang.OutOfMemoryError: Java heap space。
但是除了heap space 的OutOfMemoryError,還有其它幾種OutOfMemoryError情況。今天我們就來了解一下:
1、java.lang.OutOfMemoryError: Java heap space。
這是因為虛擬機器堆的空間所剩不多。當準備建立的物件需要的記憶體已經超過虛擬機器堆所剩的空間。虛擬機器會嘗試通過full GC來回收記憶體,如果不行的話,就會丟擲OutOfMemoryError。
導致OutOfMemoryError異常的常見原因有以下幾種:
【1】記憶體中載入的資料量過於龐大,如一次性從DB取出過多資料;
【2】集合類中有物件的引用,使用完後未清空,使得JVM不能回收;
【3】程式碼中存在死迴圈或迴圈產生過多重複的物件實體;
【4】啟動引數記憶體值設定的過小。

作者:VIPSHOP_FCS
連結:https://www.jianshu.com/p/ddbd1e229c4c
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯絡作者獲得授權並註明出處。