idea中的反编译插件的安装和使用

今天在分析当Integer类型的数据超过-128和127的区间范围时,两个对象的地址比较就是false。通过对其源码的分析后,还想通过反编译.class字节码的方式去分析其原理。
因为是第一次去反编译代码,所有百度去搜了一下idea的反编译插件。
大概说的有两种插件。一个是java bytecode decompile,另一个是Idea jad插件。
其中java bytecode decompile 在我的idea编辑器中是默认安装好的,如果你们没有安装,下载之后记得勾选右边的方框,表示启用插件,apply之后再重启idea就可以了。
因为我的idea版本和最近的插件版本不一致,在反编译时出现了如下错误。
在这里插入图片描述

两种解决方法,更新idea版本或者降低插件版本。
之后我们就可以选择项目的.class文件进行decompile。下图是文件的源代码。
在这里插入图片描述
可以看到结果是true或false。然后我们去看看他的源代码。在这里插入图片描述

当我们声明一个integer类型的数据时,会根据值的大小判断是从缓存中去取,还是new 一个新的对象。现在我们看看反编译的代码。

C:\Users\Administrator\IdeaProjects\test\out>cd production

C:\Users\Administrator\IdeaProjects\test\out\production>cd test

C:\Users\Administrator\IdeaProjects\test\out\production\test>javap -c IntegerTest
Compiled from “IntegerTest.java”
public class IntegerTest {
public IntegerTest();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object.""?)V
4: return

public static void main(java.lang.String[]);
Code:
0: bipush 100
2: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
5: astore_1
6: bipush 100
8: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
11: astore_2
12: sipush 150
15: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
18: astore_3
19: sipush 150
22: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;
25: astore 4
27: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;
30: aload_1
31: aload_2
32: if_acmpne 39
35: iconst_1
36: goto 40
39: iconst_0
40: invokevirtual #4 // Method java/io/PrintStream.println:(Z)V
43: getstatic #3 // Field java/lang/System.out:Ljava/io/PrintStream;

在这里可以注意到的是当我们声明一个Integer的对象时,它是通过valueOf去实现的。这和源码分析得出的结果过是一致的。所以有时通过反编译可能对一个知识点的原理我们能了解的更加深刻。

ps:值得注意的是如果你是从硬盘上安装插件需要把插件放到idea安装目录下plugins目录下。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在IntelliJ IDEA安装反编译插件,你可以按照以下步骤进行操作: 1. 首先,确保你已经安装了IntelliJ IDEA和Java开发环境(JDK)。 2. 下载Java反编译插件。根据引用的信息,你可以从以下路径下载插件:E:\Program Files\JetBrains\IntelliJ IDEA 2020.2.2\plugins\java-decompiler\lib\java-decompiler.jar。这是一个Java反编译器的插件。 3. 打开IntelliJ IDEA并导航到“File”菜单,然后选择“Settings”。 4. 在设置窗口,选择“Plugins”选项。 5. 点击右上角的“Install Plugin from Disk”按钮。 6. 在弹出的对话框,浏览并选择之前下载的java-decompiler.jar文件。 7. 点击“OK”按钮,然后重启IntelliJ IDEA以使插件生效。 现在,你已经成功安装了Java反编译插件。你可以使用这个插件反编译Java代码并查看其源代码。请注意,这个插件只能反编译Java代码,对于其他语言的代码可能不适用。同时,确保你理解并遵守相关的法律法规,以免违反版权规定。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [idea反编译插件安装使用](https://blog.csdn.net/m0_46504700/article/details/124569096)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [Java企业报表管理系统源码](https://download.csdn.net/download/m0_55416028/88269629)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值