通过程序看源码也叫反编译,有很多辅助软件可以做,这里介绍使用 IDEA 查看自己所编写代码的源码的方式。
- 将写的程序生成的字节码文件(class文件,前面的笔记介绍过)放到与该程序相同目录下。class文件一般存放在一个名为”out-production”的文件夹下,在”Project Structure”中可以找到该路径。
- 放在一起后在 IDEA 中,可以在该程序旁边看到一个带有 01 字样的同名 class 文件
- 直接双击该 class 文件便可打开,这就是该程序的源码。
图示:
1.从 File -> Project Structure 找到 class 文件路径。
2.再将找的 class 文件复制到该程序的文件目录下。
3.在 IDEA 中便可查看该 class 文件。
package 流程控制;
public class Demo08 {
public static void main(String[] args) {
String name = "Java";
switch (name){
case "C":
System.out.println("C");
break;
case "C++":
System.out.println("C++");
break;
case "Java":
System.out.println("Java大法好");
break;
case "Python":
System.out.println("Python");
break;
case "Go":
System.out.println("Go");
break;
default:
System.out.println("Others");
}
}
}
源码:
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package 流程控制;
public class Demo08 {
public Demo08() {
}
public static void main(String[] args) {
String name = "Java";
byte var3 = -1;
switch(name.hashCode()) {
case -1889329924:
if (name.equals("Python")) {
var3 = 3;
}
break;
case 67:
if (name.equals("C")) {
var3 = 0;
}
break;
case 2312:
if (name.equals("Go")) {
var3 = 4;
}
break;
case 65763:
if (name.equals("C++")) {
var3 = 1;
}
break;
case 2301506:
if (name.equals("Java")) {
var3 = 2;
}
}
switch(var3) {
case 0:
System.out.println("C");
break;
case 1:
System.out.println("C++");
break;
case 2:
System.out.println("Java大法好");
break;
case 3:
System.out.println("Python");
break;
case 4:
System.out.println("Go");
break;
default:
System.out.println("Others");
}
}
}
版权声明:本文为yangen2018原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。