前言
在進行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虛擬機》也變得更加容易接受,重點還是要靜下心來。