重讀JVMjava
默認Hotspot實現jvm
知道雙親委派模型工具
編譯爲class javac → 裝載 class ClassLoader → 執行class 解釋/編譯 執行post
內存空間:方法區、堆、JVM方法棧、本地方法棧、PC寄存器.net
內存分配:堆上分配、TLAB分配、棧上分配線程
內存情況分析:jconsole、visualvm、jstat、jmap、MAT日誌
Java內存模型 (Java Memory Model)描述了Java程序中各類變量(線程共享變量)的訪問規則,以及在JVM中將變量存儲到內存和從內存中讀取出變量這樣的底層細節。對象
重排序blog
順序一致性
volatile
鎖
final
garbage collection 垃圾回收
算法 Copy Mark-Sweep Mark-Compact
JDK實現 分代回收 新生代可用的GC , Minor GC觸發機制及日誌格式,舊生代可用的GC,Full GC觸發機制及日誌格式
GC參數
GI
引用計數算法
可達性分析算法
標記-清除算法
複製算法
標記-整理算法
分代收集算法
Serial收集器
ParNew收集器
Parallel Scavenger 收集器
Serial Old 收集器
CMS收集器
G1收集器
GC發生時間
垃圾收集的停頓類型
GC發生的區域 與收集器有關
GC前該內存區域已使用容量 GC前java堆已使用容量
GC所佔用的時間
虛擬機統計信息監控工具
jstack是java虛擬機自帶的一種堆棧跟蹤工具。
java內存映像工具