17
2020
12

IDEA可以反编译(也就是把生成的.class文件反编译)

源码:

package com.xiao.switchs;

public class Demo {
    public static void main(String[] args) {
        String name="小小";
        //JDK7的新特性,表达式结果可以是字符串
        switch (name){
            case "小夏":
                System.out.println("傻子");
            case "小小":
                System.out.println("小小");
        }
    }
}

反编译.class文件的代码

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by Fernflower decompiler)
//

package com.xiao.switchs;

public class Demo {
    public Demo() {
    }

    public static void main(String[] args) {
        String name = "小小";
        byte var3 = -1;
        switch(name.hashCode()) {
        case 753376:
            if (name.equals("小夏")) {
                var3 = 0;
            }
            break;
        case 754144:
            if (name.equals("小小")) {
                var3 = 1;
            }
        }

        switch(var3) {
        case 0:
            System.out.println("傻子");
        case 1:
            System.out.println("小小");
        default:
        }
    }
}

可以仔细看出即使JDK7的新特性支持字符串,但是从反编译的结果可以看出是通过hashCode()来处理成数字



反编译的教程

1.先找到.class文件所在的位置:在file->project structure中选择project看到project compiler output中有一个路径,这个路径就是编译生成.class文件存放的位置

2.再找到.java文件所在的位置:在包或者类中右键选择show in explorer可以打开其在文件夹中的位置

3.把.class文件拖到.java文件夹里面,这样在IDEA中就能出现.class文件了,就可以看了

gzh

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。