一、java虛擬機的內存管理與垃圾回收
java虛擬機的內存管理與垃圾回收,是虛擬機結構體系中最重要的部分
1、java內存區域劃分 與內存溢出
只有瞭解java內存區域劃分,知道什麼樣的代碼可以導致內存泄露,應該怎麼做避免內存溢出,或者在發生了內存泄露、溢出時如何排查。
1.1運行時數據區
那幾塊可能發生內存溢出
2、垃圾收集器與內存分配策略
2.1 如何判斷對象已死
2.2 垃圾回收算法
2.3 幾種常見垃圾收集器
2.4 內存分配與回收策略
3、虛擬機監控與故障處理工具
3.1 jdk命令工具
jps:虛擬機進程狀況工具
jstat:虛擬機統計信息監視工具
jstack:java堆棧跟蹤工具
二、虛擬機執行子系統
1、類文件結構
class文件是java虛擬機執行引擎的數據入口,也是java技術體系的基礎構成之一。瞭解class文件結構對後面進一步瞭解虛擬機執行引擎有重要意義。
1.1 魔數與class文件的版本
1.2 常量池
字面量(比較接近java語言層面的常理概念,如文本字符串,申明爲final類型的常量)、符號引用(屬於編譯原理方面的概念:類和接口的全限定名、字段的名稱和描述符、方法的名稱和描述符)
class文件不會保存各個方法、字段的最終內存佈局信息,只是會用符號引用來代替。當虛擬機運