1. 安装
2.使用
安装之后
在 view 的 ToolWindows 里也有一个这样的窗口
jclasslib 的主要作用是查看字节码的相关信息
package com.test;public class Test {public static void main(String[] args) {Integer a = 1;int b = a +2;}
}
例如我写了一段这样的代码,然后去查看他的字节码
编译完之后
因为内容写在了主函数里
所以查看
0 iconst_11 invokestatic #2 <java/lang/Integer.valueOf : (I)Ljava/lang/Integer;>4 astore_15 aload_16 invokevirtual #3 <java/lang/Integer.intValue : ()I>9 iconst_2
10 iadd
11 istore_2
12 return
iconst_1
加载数字1到操作数栈。
invokestatic #2 <java/lang/Integer.valueOf : (I)Ljava/lang/Integer;>
使用
invokestatic
调用java.lang.Integer.valueOf(I)
方法,将整数1转换为一个Integer对象并返回。这个方法的目的是将基本数据类型封装为对应的包装类对象。astore_1
将返回的Integer对象存储在局部变量表中索引为1的局部变量中。
aload_1将局部变量表中索引为1的局部变量中的Integer对象加载到操作数栈。
invokevirtual #3 <java/lang/Integer.intValue : ()I>使用
invokevirtual
调用java.lang.Integer.intValue()
方法,将Integer对象转换为其基本数据类型int的值,并将结果加载到操作数栈。iconst_2
加载数字2到操作数栈。
iadd
使用
iadd
执行整数加法操作,将操作数栈中的两个整数相加,并将结果存储在操作数栈中。istore_2
使用
iadd
执行整数加法操作,将操作数栈中的两个整数相加,并将结果存储在操作数栈中。return
返回方法,结束方法执行。