JVM虚拟机如何查看.class文件

      Java标志是一杯热咖啡,这杯热咖啡你很难与计算机编程联想到一起,这杯热咖啡却是Java这个名字的由来。故事是这样的,JAVA语言起名时,简姆斯 古斯林注意到自己办公室外一棵茂密的橡树Oak,这是一种在硅谷很常见的树。所以他将这个新语言命名为Oak。但Oak是另外一个注册公司的名字。这个名字不可能再用了。他的一个同事马克 奥颇门(Mark Opperman)在一家咖啡店于同事品尝咖啡时得到了灵感,想到了Java一词。Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。国外的许多咖啡店用Java来命名或宣传,以彰显其咖啡的品质。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。

      Class文件全名称为Java class文件,它是一组以8位字节为基础单位的二进制流,当我们运行JAVA程序的时候,首先.java文件需要先编译成.class文件,任何一个Class文件都对应着唯一一个类或接口的定义信息,Java虚拟机(JVM)加载class文件并运行

 

        当我们用UltraEditor打开一个class类后,每个Class文件的头4个字节我们叫他魔数 (Magic Number)。仔细看上图中的数CAFE BABE(咖啡宝贝),它标识这个文件是否是能够被虚拟机接收的Class文件

      紧接着魔数的存储的是Class文件的版本号,Java的版本号是从45开始的,JDK 1.1之后的每个JDK大版本发布主版本号向上加1(JDK 1.0~1.1使用了45.0~45.3的版本号)

00 00 : 表示主版本号,将16进制数0000转换成10进制后的数字是0,表示次版本号为0

00 31:表示次版本号,将16进制数0031转换成10进制后的数字是49,表示主版本号为49

00 00 00 31表示49.0版本,对应的JDK版本是1.5

综上图中 CA FE BA BE 00 00 00 31 表示本文件是JVM可加载的 class文件, 编译使用的JDK版本是JDK1.5

JDK版本号

Class版本号

16进制

1.1

45.0

00 00 00 2D

1.2

46.0

00 00 00 2E

1.3

47.0

00 00 00 2F

1.4

48.0

00 00 00 30

1.5

49.0

00 00 00 31

1.6

50.0

00 00 00 32

1.7

51.0

00 00 00 33

1.8

52.0

00 00 00 34

上一篇:JVM如何读GC日志以及如何使用工具分析https://blog.csdn.net/Beijing_L/article/details/120217862icon-default.png?t=L9C2https://blog.csdn.net/Beijing_L/article/details/120217862

猜你喜欢

转载自blog.csdn.net/Beijing_L/article/details/120272564
今日推荐