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标准。
常识分享,转载请注明出处。学无先后,达者为先!