JVM笔记 JVM入门及class文件格式[一]
JVM入门及class文件格式[一])
一、JVM认识
1.JVM执行过程
2.jvm与class文件格式
jvm跟java无关 任何语言只要能编译成class 都可以在jvm虚拟机执行
3.常见的JVM实现
- Hotspot
- oracle官方,做实验用的JVM
- java -version
- Jrockit
- BEA公司,曾经号称世界上最快的JVM,被Oracle收购,合并于hotspot
- J9 -IBM
- Micorsoft VM
- Taobao VM
- hotspot深度定制版
- LiquidVM
- 直接针对硬件
- azul zing
- 最新垃圾回收的业界标杆
- www.azul.com
4.JDK JRE JVM
二、Class File Format
1.classFileFormat
-
二进制字节流
-
数据类型:u1 u2 u4 u8和_info(表类型)
u:无符号 u1 一个字节 u2 两个字节 … -
查看16进制格式的ClassFile方式
1.sublime / notepad / IDEA插件 BinEd -
观察字节码文件ByteCode的方法
Minor version:小版本号
Major version :大版本号
Constant pool count :常量池数量 最大65563-1 占16进制两个字节 #0代表预留 没有任何引用指向
Access flags :修饰符
This class :全限定名
Super class :父类
interfaces count : 实现的接口数量
fields count :属性数量
Methods count :方法数量
attibutes count::其他附加属性1.javap
2JBE 可以直接修改
3.JClassLib -IDEA插件