深入理解Java虛擬機器筆記1: OOM實戰
透過程式碼模擬Java虛擬機器規範中描述的各個執行時區域記憶體溢位的場景。
首先,虛擬機器啟動引數配置如下:
輸出:
2. 虛擬機器棧和本地方法棧溢位
-
2.1 StackOverflowError
虛擬機器丟擲StackOverflowError異常,輸出:
需要注意,為每個執行緒的棧分配的記憶體越大,反而越容易產生棧記憶體溢位異常。
這個不難理解,每個執行緒分配到棧容量越大,可以建立的執行緒數量自然就越少,建立執行緒時就越容易把剩下的記憶體耗盡。
因此,可以透過
“減少記憶體”
的手段來解決棧記憶體溢位問題。
3. 方法區和執行時常量池溢位
JDK 1.7開始逐步“去永久代化”。在JDK 1.6及之前的版本,由於常量池分配在永久代,可以透過-XX:PermSize和-XX:MaxPermSize限制方法區大小,從而間接限制常量池容量。
在JDK 1.7及以上,while迴圈將一直進行下去。
方法區用於存放Class的相關資訊,如類名、訪問修飾符、常量池、欄位描述、方法描述等。對於這些區域的測試,基本的思想是執行時產生大量的類去填滿方法去,直到溢位。
4. 本機直接記憶體溢位
執行結果:
小結
Java堆溢位
虛擬機器棧和本地方法棧溢位
方法區和執行時常量池溢位
本機直接記憶體溢位
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31541037/viewspace-2157023/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 深入理解java虛擬機器——讀書筆記1Java虛擬機筆記
- 《深入理解java虛擬機器》讀書筆記1(走近java)Java虛擬機筆記
- 《深入理解 Java 虛擬機器》筆記整理Java虛擬機筆記
- 《深入理解Java虛擬機器》個人筆記Java虛擬機筆記
- 《深入理解java虛擬機器》讀書筆記2(java記憶體區域與OOM)Java虛擬機筆記記憶體OOM
- 《深入理解Java虛擬機器》讀書筆記Java虛擬機筆記
- 深入理解Java虛擬機器之實戰OutOfMemoryErrorJava虛擬機Error
- 《深入理解java虛擬機器》學習筆記4——Java虛擬機器垃圾收集器Java虛擬機筆記
- 《深入理解java虛擬機器》學習筆記1——Java記憶體結構Java虛擬機筆記記憶體
- 《深入理解java虛擬機器》學習筆記7——Java虛擬機器類生命週期Java虛擬機筆記
- 《深入理解java虛擬機器》第3版筆記3Java虛擬機筆記
- 深入理解java虛擬機器Java虛擬機
- 深入理解Java虛擬機器筆記之二關於物件Java虛擬機筆記物件
- 深入理解Java虛擬機器筆記-自動記憶體管理機制Java虛擬機筆記記憶體
- 《深入理解java虛擬機器》筆記3——7種垃圾收集器Java虛擬機筆記
- 深入理解Java虛擬機器(一)Java虛擬機
- 深入理解Java虛擬機器(二)Java虛擬機
- 《深入理解Java虛擬機器》個人讀書總結——JAVA虛擬機器記憶體Java虛擬機記憶體
- 類檔案結構——深入理解Java虛擬機器 筆記三Java虛擬機筆記
- 《深入理解Java虛擬機器》-(實戰)練習修改class檔案Java虛擬機
- 《深入理解java虛擬機器》第七章讀書筆記——虛擬機器類載入機制Java虛擬機筆記
- 深入理解java虛擬機器 筆記一 ---自動記憶體管理機制Java虛擬機筆記記憶體
- 《深入理解java虛擬機器》學習筆記6——類載入機制Java虛擬機筆記
- 深入理解Java虛擬機器筆記之四關於垃圾收集器Java虛擬機筆記
- 深入理解Java虛擬機器 --- 垃圾回收器Java虛擬機
- 【深入理解Java虛擬機器】垃圾回收Java虛擬機
- [深入理解Java虛擬機器]第二章 實戰 :OutOfMemoryError異常Java虛擬機Error
- 深入理解Java虛擬機器筆記之一Java執行時資料區Java虛擬機筆記
- 深入理解Java虛擬機器筆記之六記憶體分配與回收策略Java虛擬機筆記記憶體
- 《深入理解java虛擬機器》學習筆記2——Java記憶體溢位例項Java虛擬機筆記記憶體溢位
- 深入理解虛擬機器之Java記憶體區域虛擬機Java記憶體
- 《深入理解java虛擬機器》學習筆記3——垃圾回收演算法Java虛擬機筆記演算法
- 讀書筆記之《深入理解Java虛擬機器:JVM高階特性與最佳實踐》筆記Java虛擬機JVM
- [深入理解Java虛擬機器]執行緒Java虛擬機執行緒
- 《深入理解java虛擬機器》學習筆記5——Java Class類檔案結構Java虛擬機筆記
- 深入理解Java虛擬機器(自動記憶體管理機制)Java虛擬機記憶體
- 《深入理解Java虛擬機器》讀書筆記:垃圾收集器與記憶體分配策略Java虛擬機筆記記憶體
- 深入理解Java虛擬機器8 虛擬機器位元組碼執行引擎Java虛擬機