【工具栏】jclasslib 插件的安装和使用

发布时间:2024年01月12日

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

返回方法,结束方法执行。

?

文章来源:https://blog.csdn.net/m0_67930426/article/details/135556853
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。