016-JVM-十六进制class文件简单解读

256 阅读1分钟
package com.yuhl;

public class T0100_ByteCode01 {
}

注意:默认编译后会有个无惨的构造方法

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.yuhl;

public class T0100_ByteCode01 {
    public T0100_ByteCode01() {
    }
}

总结:

  1. 魔数
  2. 小版本号
  3. 大版本号
    code 指令的简单入门解释
    下图很清晰地串联了十六进制转变为 jvm 汇编的对应关系(注意:尽量去看原图,因为原图可能做些优化,截图可能不会跟着更新哦!)
    原图地址:https://www.processon.com/view/link/5fdf462363768907e4aa40cc

  1. 在 idea 中点击 code 中的相应指令就会挑战到官方对此指令的解释上:
    此处给出连接:docs.oracle.com/javase/spec…
  2. 读懂了上面的几个十六进制就算入门了。遇到问题可以查看前面博客中的字典和官方指令集文档(第一条中的连接),或者查看自己下载的 jvm 规范第六章也可以查看指令集解释。

自律的艰辛总甜过懊悔的苦果!
专注于 java 后端技术及解决方案,善于总结,分享!
自律的艰辛总甜过懊悔的苦果!
专注于 java 后端技术及解决方案,善于总结,分享!
自律的艰辛总甜过懊悔的苦果!
专注于 java 后端技术及解决方案,善于总结,分享!