記憶體溢位和記憶體洩漏

2021-10-08 18:28:30 字數 564 閱讀 3023

記憶體洩漏

記憶體不夠用

典型的記憶體溢位就是out of memory(oom)

堆記憶體不夠一般有兩個原因

1. jvm設定的堆的大小不夠 : 可通過xmx,xms來設定

2. **中建立了大量大物件,並且很長時間不能被**

記憶體開始夠用,但浪費很多,之後不夠用

嚴格來說,只有物件不會再被程式用到了,但是gc又不能**他們的情況,才叫記憶體洩漏

但是: 一般我們說的記憶體洩漏都是廣義的,就是指有一些用不到的物件占用著虛擬機器的記憶體,一般是指由於自己寫**的時候的一些疏忽,導致一些該**的物件沒有被**

單例模式

單例物件的內部依賴了乙個外部的物件,這個外部的物件在一段時間後不被使用了,因此造成很大的浪費,尤其是遇到這個外部的物件非常大的情況

一些物件沒有進行close()操作

比如資料庫連線開了連線後並沒有斷開,socket的連線開了沒有斷開

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

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

記憶體溢位和記憶體洩漏

記憶體溢位 oom 指程式在申請記憶體時,沒有足夠的記憶體空間供其使用,出現oom 記憶體洩露memory leak 指程式在申請記憶體後,無法釋放已申請的記憶體空間,一直占用著這塊記憶體空間。記憶體溢位就是你要求分配的記憶體超出了系統能給你的,系統不能滿足需求,於是產生溢位。記憶體洩漏是指你向系統...

記憶體溢位和記憶體洩漏

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