【Java】JVM複習
JVM整體架構
JVM內部分層
Class檔案分析
package com.demo;
public class Math {
private int math() {
int a = 1;
int b = 2;
int c = (a+b)*10;
return c;
}
public static void main(String[] args) {
Math math = new Math();
System.out.println(math.math());
}
}
math.class檔案(cmd 然後javap)
堆
MetaData是元空間,jdk1.8之後才有的。以前叫永久代(非堆),用的是堆裡面(虛擬機器的)記憶體。
現在存在實體記憶體,實現了真正的隔離
方法區是抽象,元空間和永久代是方法區的具體實現
堆儲存物件和GC過程
- 首先先將建立的物件放在Eden區
- 如果Eden區放滿之後,會進行一次輕(小)gc,將Eden區不可達的物件消除
- 如果輕(小)gc之後Eden區還是滿的,可以放還存活的物件到SurvivorSpace的From
- 如果Eden和From都放滿之後,會再一次gc,如果gc之後還是不夠,會將From區資料複製到To區,From就空了
- 下次Eden區放滿之後gc就放到To區(也就是To和From角色互換了)
- 經過15次(JDK預設次數)輪詢之後,將還存活的物件就放到Old Generation老年代
- 老年代放滿之後(前面的新生代都放滿了),就會進行FullGC(Stop the world),Java程式都無法響應了,全部拿來回收
相關文章
- 《java學習二》jvm效能優化-----認識jvmJavaJVM優化
- Java泛型複習Java泛型
- Java se 複習05Java
- java基礎複習Java
- java課後題複習Java
- Java基礎學習總結(119)——Java8 JVM與Java7 JVM比較JavaJVM
- 【Java】多執行緒複習Java執行緒
- java基礎複習-----泛型Java泛型
- 《java學習三》jvm效能優化-------調優JavaJVM優化
- 《java學習三》jvm效能優化------jconsulJavaJVM優化
- java學習筆記-4 JVM垃圾回收(GC)Java筆記JVMGC
- JAVA簡單的複習資料Java
- 複習JAVA面相物件(類和物件)Java物件
- 複習java物件導向(封裝)Java物件封裝
- Java基礎學習總結(121)——Java JVM執行流程JavaJVM
- Java初階段學習的複習總結Java
- 計算機二級Java複習1計算機Java
- 複習java面對物件(方法重寫)Java物件
- 面試複習筆記一(java基礎)面試筆記Java
- Java基礎複習,整理知識點Java
- JVM學習筆記——初識JVMJVM筆記
- 深入理解JVM(③)學習Java的記憶體模型JVMJava記憶體模型
- JVM 深入學習:Java 解析 Class 檔案過程解析JVMJava
- JVM學習之JVM基礎知識JVM
- java複習之HashMap和Hashtable的區別JavaHashMap
- java物件導向複習總結(異常)Java物件
- java面試重要知識點複習大綱Java面試
- 複習Java的第三天3.20Java
- java自動化——web自動化複習JavaWeb
- 五分鐘學Java:如何學習Java面試必考的JVM虛擬機器Java面試JVM虛擬機
- Java當中的JVMJavaJVM
- JVM(八):Java 物件模型JVMJava物件模型
- Java JVM——8.堆JavaJVM
- jvm系列:Java GC 分析JVMJavaGC
- jvm java回收機制JVMJava
- Java Thread in JVM (轉)JavathreadJVM
- JVM學習總結JVM
- JVM基礎學習JVM