对JVM的一个基础了解

1、JVM范围

 

 

2、JVM和class文件

  (1)、JVM和Java语言无关,JVM是一种规范,任何语言只要能编译成class文件格式都能在JVM上运行

 

3、class文件格式

  (1)、class文件就是一个二进制流,用十六进制表示为:

      

图中一个矩形代表一个字节

  (2)class文件中的内容

      

  1、魔术:每个Class文件的头4个字节成为魔数(Magic Number),它的唯一作用是确定这个文件是否为一个能被虚拟机接收的Class文件。所有Class文件,魔数均为0xCAFEBABE。

  2、大小版本号:Class文件中第五、六个字节存储的是次版本号(minor version),第七、八个字节存储的是主版本号(major version)。假设Class文件的版本号十进制下为45.3,那么major version在十进制下为45,minor versio在十进制下则为3。

  3、常量池计数器:用来记录常量池中常量的个数,因为用的是u2类型的数据即用两个字节来存储,所以常量池中的常量不能超过65535个。而且,常量池计数器是从1开始的,这样当某些数据想表达“不想引用任何一个常量池项”时,就可以将其常量池索引值设为0;

  4、访问标志:用于识别一些类或接口层次的访问信息。例如:ACC_PUBLIC、标志位0x0001 表示是否为public类型。



 

posted @ 2020-09-11 21:53  zcr小翟  阅读(215)  评论(0编辑  收藏  举报