学习JVM

java虚拟机
流程:helloworld.java----(javac编译)----helloworld.class-------(java运行)——JVM——机器码

JVM功能
*解释和运行
*内存管理
*即时编译(跨平台-慢一点)jit
        (反复用到的代码 解释保存再内存里面)

jvm主要组成:
*类加载器,
*运行时数据区(jvm管理的内存),
*执行引擎(即时编译器,解释器,垃圾回收器)

字节码文件组成
 

工具:notepad++是不可以的 工具用 jclasslib

组成:基本信息常量池,字段,方法,属性

基本信息
       1, magic(魔数):确认是字节码文件(前缀固定0xcofe base)
        2,主版本号 : (-44就等于jdk)-可以确定运行jdk和编译的版本是否一致

常量池
       
避免重复内容的重复定义,浪费空间
        *常量池的数据都有一个编号
        *字节码指令中提高编号引用常量池的过“符合引用”
方法