前言
在进行java代码,调试时,有些复杂的情况(如语法糖等)会让我们难以理解JVM的具体执行细节,此时我们可以通过javap
反编译来查看JVM字节码,而在ide中,通过jclasslib Bytecode viewer
工具,可以更为细节地观察某类的字节码及字节码代表的字段表集合等信息。
正文
- 首先,在
intelij idea
中引入工具,具体操作如下:
- 重启ide后,点击某个类,在工具栏
view
中可以看到show bytecode
的选项,如下:
- 新建Test5.java类 (源自《深入理解Java虚拟机》),测试工具的使用:
package com.hpsyche;
/**
* @author hpsyche
* Create on 2019/12/13
*/
public class Test5 {
public static void main(String[] args) {
getX();
}
private static int getX() {
int x;
try{
x=1;
return x;
}catch(Exception e){
x=2;
return x;
}finally{
x=3;
}
}
}
- 在左侧
Project
处点击Test5,此时点击view
中的show bytecode
会弹出警告的提示,大致意思是需要先build你的项目,点击项目栏上的小锤子,(如果是maven工程,则需要maven install),如下:
- 此时再次
show bytecode
,可以看到具体的字节码
在show bytecode with jclasslib
选项中,可以更为详细地看到该类的各种属性,如异常表Exception Table
等:
总结
经过对Java的不断加深理解,再次看《深入理解Java虚拟机》也变得更加容易接受,重点还是要静下心来。