JVM系列筆記目錄
- 虛擬機的基礎概念
- class檔案結構
- class檔案加載程序
- jvm記憶體模型
- JVM常用指令
- GC與調優
如何查看class位元組碼檔案
在idea中可以通過插件BinEd來查看二進制或十六進制檔案,展示一個簡單類的class檔案源位元組碼,看不懂?請往下看,

更直觀一點的可以在idea中安裝插件jclasslib,選中類檔案->View-> Show Bytecode With jclasslib,該插件清楚地看到.class檔案的各個組成部分,

另外一種方式,通過javap查看,

Class檔案結構
檔案結構由16個部分組成,約定下u4指占用的位元組數為4,u2同理,這里指簡單說明各個部分的含義,不做詳細展開,如想深入了解,參考 JVM規范第4章節The class File Format
- Magic Number class檔案標志符 u4,ca fe ba be
- Minor Version class檔案小版本號 u2
- Major Version 主版本號 u2,主版本+小版本號構成jdk版本,jdk8 默認 52.0,jdk7默認為51.0
- constant_pool_count 常量池的大小u2
- constant_pool 長度為constant_pool_count-1的陣列,class檔案中最復雜的部分
- access_flag 類修飾符
- this_class 類全名,指向常量池某個元素
- super_class 父類名 指向常量池的某個元素
- interface_count 實作的介面數量
- interfaces 介面
- fields_count 欄位數量
- fields 欄位
- method_count 方法數量
- methods 方法
- attribute_count 附加屬性數量
- attributes 附加屬性
總結
class 檔案結構很復雜,本為只是作簡單介紹,為 JVM系列【3】Class檔案加載程序 和 JVM系列【4】記憶體模型作為基礎知識點的鋪墊,真正想深入理解class檔案結構的,請閱讀官方JVM規范,
知識分享,轉載請注明出處,學無先后,達者為先!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/173104.html
標籤:Java
下一篇:SSM之Mybatis筆記總結
