【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基礎複習Java
- Java se 複習05Java
- java課後題複習Java
- 《java學習三》jvm效能優化------jconsulJavaJVM優化
- 【Java】多執行緒複習Java執行緒
- java基礎複習-----泛型Java泛型
- java複習之 String,StringBuffer,StringBuilderJavaUI
- java學習筆記-4 JVM垃圾回收(GC)Java筆記JVMGC
- 《java學習三》jvm效能優化-------調優JavaJVM優化
- JAVA簡單的複習資料Java
- 計算機二級Java複習1計算機Java
- 複習Java的第三天3.20Java
- 深入理解JVM(③)學習Java的記憶體模型JVMJava記憶體模型
- JAVA 小白搞死JVMJavaJVM
- JVM學習筆記——初識JVMJVM筆記
- java自動化——web自動化複習JavaWeb
- java複習之HashMap和Hashtable的區別JavaHashMap
- JVM學習之JVM基礎知識JVM
- Java當中的JVMJavaJVM
- JVM(八):Java 物件模型JVMJava物件模型
- Java JVM——8.堆JavaJVM
- java複習之 Vector、ArrayList和LinkedList 的區別Java
- 好程式設計師Java分享JVM從哪方面入手學習程式設計師JavaJVM
- 五分鐘學Java:如何學習Java面試必考的JVM虛擬機器Java面試JVM虛擬機
- JVM虛擬機器知識問答總結(簡單複習,快速回憶!)JVM虛擬機
- JVM學習筆記JVM筆記
- JVM學習總結JVM
- Java虛擬機器(JVM)Java虛擬機JVM
- Java jvm 類載入 反射JavaJVM反射
- 揭祕JAVA JVM內幕JavaJVM
- 【Java】JVM位元組碼分析JavaJVM
- Java JVM——9.方法區JavaJVM
- 【期末考試季】JAVA進階複習提綱Java
- 【原創】關於JAVA複習的最佳敏捷實踐Java敏捷
- Java併發知識點快速複習手冊(上)Java
- Java併發知識點快速複習手冊(下)Java