1.什麼是java虛擬機?
JVM是Java Virtual Machine (java 虛擬機) 的縮寫,JVM是一種用於計算設備的規範,她是一個虛擬出來的計算機,是通過實際的計算機上仿真模擬各種計算機功能來實現的。(摘取與百度百科)
2.爲什麼要學習JVM?
- 1)你能夠明白爲什麼Java最早期被稱爲解釋型語言,而後來爲什麼又被大家叫做解釋與編譯並存的語言(瞭解JVM中解釋器以及即時編譯器就可以回答這個問題);
- 2)你能夠理解動態編譯與靜態編譯的區別,以及動態編譯相對於靜態編譯到底有什麼好處(JVM JIT);
- (https://www.cnblogs.com/csxf/p/3387365.html)
- 3)你能夠利用一些工具,jmap, jvisualvm, jstat, jconsole等工具可以輔助你觀察Java應用在運行時堆的佈局情況,由此你可以通過調整JVM相關參數提高Java應用的性能;
- 4)可以清楚知道Java程序,類加載機制等是如何執行的;
- 5)可以明白爲什麼Java等高級語言具有可移植性強的特性。
- 6)可以瞭解到JVM是怎麼GC(垃圾回收)
3.java運行機制
簡單瞭解下JVM的運行機制,之後我們大多數主要關注的JVM運行時的內存
線程共享(堆,方法區,),線程獨有(java棧,本地方法棧,程序計數器)