反编译是指经过对他人软件的目标程序(好比可执行程序)进行“逆向分析、研究”工做,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定状况下可能推导出源代码。反编译做为本身开发软件时的参考,或者直接用于本身的软件产品中。例如执行以下代码的反编译java
1 public class stringbuffer { 2 public static void main(String[] args){ 3 StringBuffer s = new StringBuffer("Hello"); 4 System.out.println("修改后的字符串:"); 5 change(s); 6 System.out.println(s); 7 System.out.println("倒转后的字符串:"); 8 reverse(s); 9 System.out.println(s); 10 } 11 public static void change(StringBuffer temp) { 12 temp.append(" World!! ").insert(0,"MRMr.Song ").delete(0,2); 13 14 } 15 public static void reverse(StringBuffer temp) { 16 temp.reverse(); 17 } 18 } 19 //.append()至关于字符串的+ 20 //insert()有两个参数,第一个是插入的位置第二个插入的元素或者内容 21 //delete()有两个参数分别是删除的起始和终止位置 22 //reverse倒转
结果如图算法
在过程当中先要切换磁盘,由于不能跨盘执行,而后更换目录,在用javac执行.java程序,在用java执行源文件,最后用javap执行.class文件就能够看到反编译结果,看到了程序执行过程当中的方法顺序,有利于本身的编程,若是是别人的程序,则更有利于了解别人程序的构造,为本身所利用编程