1. 程式人生 > >Java記憶體溢位OutOfMemoryError的產生與排查

Java記憶體溢位OutOfMemoryError的產生與排查

在java的虛擬機器異常中,有兩個異常是大家比較關心的,一個是**StackOverflowError**,另一個是**OutOfMemoryError**。今天我們就來看看**OutOfMemoryError**是怎麼產生的,以及如何去排查這個異常。 ## 概念 要了解什麼是OutOfMemoryError,我們可以直接看一下OutOfMemoryError的原始碼,在類上的英文註釋很好的闡述了什麼是OutOfMemoryError,翻譯過來的意思是,**由於記憶體不足,虛擬機器沒有可分配的記憶體了,垃圾回收器也不能釋放更多的記憶體。**在生產環境中,由於訪問量過大,把記憶體吃滿,會出現OutOfMemoryError的異常,小夥伴們如果沒有經驗的話,往往束手無策,到底是真的記憶體不夠用了,還是自己的程式有問題,也不知道如何去排查這樣的異常。 ## 模擬OutOfMemoryError 在這裡,我們寫一段程式,來模擬一下OutOfMemoryError如何產生,我們建立一個List物件,然後向裡邊不停的新增1M的Byte,如下; ```java public static void main(String[] args) {