記憶體溢位和記憶體洩漏的區別

2021-10-01 02:37:04 字數 337 閱讀 4690

記憶體中載入的資料量過於龐大,比如一次從資料庫取出過多資料;

集合類中某些物件的引用,使用完後未清空,使得jvm不能**,導致記憶體溢位;

**中迴圈產生過多重複的物件實體;

修改jvm啟動引數,增加記憶體。比如 -xms 引數用來指定初始堆的大小(s 表示 start)。-xmx 引數用來指定最大堆的大小(x 表示 max),適當增加這兩引數的大小。

對**打斷點進行分析,還有檢視日誌,檢查是否有死迴圈,或者重複建立了大量物件。

及時釋放無用物件的引用,比如及時將不用的變數設定為null,暗示gc**它。

少用靜態變數,因為靜態變數是全域性的,生命週期和應用程式的一樣長。

記憶體洩漏和記憶體溢位 記憶體洩漏和記憶體溢位

記憶體洩漏 是指申請的記憶體空間使用完畢之後未 一次記憶體洩露危害可以忽略,但若一直洩漏,無論有多少記憶體,遲早都會被占用光,最終導致程式crash。因此,開發中我們要盡量避免記憶體洩漏的出現 記憶體溢位 是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用。通俗理解就是記憶體不夠用了,通常在執行大...

記憶體溢位和記憶體洩漏的區別

記憶體溢位 out of memory,是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現out of memory 比如申請了乙個integer,但給它存了long才能存下的數,那就是記憶體溢位。記憶體洩露 memory leak,是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記...

記憶體溢位和記憶體洩漏的區別

記憶體溢位 out of memory,是指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現out of memory 比如申請了乙個integer,但給它存了long才能存下的數,那就是記憶體溢位。記憶體洩露 memory leak,是指程式在申請記憶體後,無法釋放已申請的記憶體空間,一次記...