轉自:http://www.java265.com/JavaMianJing/202110/16349105381543.html
java中記憶體泄漏和記憶體溢位指什么呢? 下文筆者講述java中常見的記憶體泄漏和記憶體溢位的相關簡介說明,如下所示:
記憶體泄漏
記憶體泄漏是指物件實體在新建和使用完畢后 仍然被參考,沒能被垃圾回收釋放,一直積累, 直到沒有剩余記憶體可用 當存在記憶體泄露時,我們需找出泄露的物件是怎么被GC ROOT參考起來 然后通過參考鏈來具體分析泄露的原因 分析記憶體泄漏的工具有:Jprofiler,visualvm等,
記憶體溢位
記憶體溢位是指當我們新建一個實體物件時, 實體物件所需占用的記憶體空間大于堆的可用空間, 堆疊(JVM Stack)存放主要是堆疊幀( 區域變數表, 運算元堆疊 , 動態鏈接 , 方法出口資訊 )的地方, 注意區分堆疊和堆疊幀: 堆疊里包含堆疊幀, 與執行緒堆疊相關的記憶體例外有兩個: 1.StackOverflowError(方法呼叫層次太深,記憶體不夠新建堆疊幀) 2.OutOfMemoryError(執行緒太多,記憶體不夠新建執行緒) 當出現了記憶體溢位問題, 這種情況通常是程式運行所需的記憶體大于了我們給jvm虛擬機配置的記憶體 這種情況下,我們可以采用調大-Xmx來解決這種問題 例: 定義幾十個超級大的字串,此時將會直接導致記憶體溢位
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/512964.html
標籤:Java
