上一篇:015-JVM-使用javap查看class文件内容 https://blog.csdn.net/fsjwin/article/details/111426985
1. 源码T0100_ByteCode01.java
package com.yuhl;
public class T0100_ByteCode01 {
}
2.class文件
注意:默认编译后会有个无惨的构造方法
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//
package com.yuhl;
public class T0100_ByteCode01 {
public T0100_ByteCode01() {
}
}
3. 使用工具打开class文件并简单解读
总结:
- 魔数
- 小版本号
- 大版本号
code指令的简单入门解释
下图很清晰地串联了十六进制转变为jvm汇编的对应关系(注意:尽量去看原图,因为原图可能做些优化,截图可能不会跟着更新哦!)
原图地址:https://www.processon.com/view/link/5fdf462363768907e4aa40cc
4. 总结
- 在idea中点击code中的相应指令就会挑战到官方对此指令的解释上:
此处给出连接:docs.oracle.com/javase/spec… - 读懂了上面的几个十六进制就算入门了。遇到问题可以查看前面博客中的字典和官方指令集文档(第一条中的连接),或者查看自己下载的jvm规范第六章也可以查看指令集解释。
下一篇:017-JVM-JVM指令在多线程中是原子操作吗?https://blog.csdn.net/fsjwin/article/details/111463444