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_1
1 invokestatic #2 <java/lang/Integer.valueOf : (I)Ljava/lang/Integer;>
4 astore_1
5 aload_1
6 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
返回方法,结束方法执行。