1.執行時資料結構
2.堆分代
3.垃圾收集器
4.gc日誌
package jvm;public class gctest
}
控制台:
垃圾**前........[gc (system.gc()) [psyounggen: 1996k->816k(38400k)] 1996k->824k(125952k), 0.0010917 secs] [times: user=0.00 sys=0.00, real=0.00 secs]
[full gc (system.gc()) [psyounggen: 816k->0k(38400k)] [paroldgen: 8k->526k(87552k)] 824k->526k(125952k), [metaspace: 2594k->2594k(1056768k)], 0.0072251 secs] [times: user=0.00 sys=0.00, real=0.01 secs]
垃圾**後........
heap
psyounggen total 38400k, used 998k [0x00000000d5d00000, 0x00000000d8780000, 0x0000000100000000)
eden space 33280k, 3% used [0x00000000d5d00000,0x00000000d5df9b20,0x00000000d7d80000)
from space 5120k, 0% used [0x00000000d7d80000,0x00000000d7d80000,0x00000000d8280000)
to space 5120k, 0% used [0x00000000d8280000,0x00000000d8280000,0x00000000d8780000)
paroldgen total 87552k, used 526k [0x0000000081600000, 0x0000000086b80000, 0x00000000d5d00000)
object space 87552k, 0% used [0x0000000081600000,0x0000000081683a30,0x0000000086b80000)
metaspace used 2600k, capacity 4486k, committed 4864k, reserved 1056768k
class space used 288k, capacity 386k, committed 512k, reserved 1048576k
4.判斷物件是否可**
(1)引用計數法
package jvm;/** * 引用計數法:
* 迴圈引用無法**
*/public class referencecountgorithms
}
(2)可達性分析法
5.垃圾收集演算法
(1)標記-清除演算法
(2)複製演算法
主要針對新生代
(3)標記-整理-清除演算法
主要針對老年代
(4)分代演算法
6.垃圾收集器
(1)serial
單執行緒垃圾收集器
(2)parnew
jvm學習(筆記)
1 jvm規範 img 2 oracle jdk 編譯機制 img 1 詞法分析 將 轉token序列 例如token.eq name 語法分析 生成語法抽象樹。2 註解處理 處理註解生成 3 檢查語法抽象樹 3 類載入順序 classloader self parent system findcl...
JVM 學習筆記(三)
選擇對應版本鏈結 tools visual gc 首先我們啟動本地工程,不停地往記憶體中新增物件,如下 restcontroller public class heapcontroller 使用的是springboot的工程,啟動後訪問 localhost 8080 heap 這樣是程式不停地往記憶...
Tapestry學習筆記 JVM設定
對於運用tomcat tapestry進行開發的時候 由於tapestry對生成的檔案有快取處理機制 所以更改檔案的時候 tapestry都不會自動更新 使得每次更改內容都必須重啟tomcat 為了解決這個問題 可以在jvm中新增一下內容 dorg.apache.tapestry.disable c...