首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

有个小疑点懂的来解释一下,谢谢

2013-11-26 
有个小问题懂的来解释一下,多谢.java源代码编译成的.class字节码文件通过jd-gui等工具反编译成java的源代

有个小问题懂的来解释一下,多谢.
java源代码编译成的.class字节码文件通过jd-gui等工具反编译成java的源代码的过程叫反编译。

问题是 .class字节码文件中的内容都是一大堆看不懂的字节,jdk里有个工具叫javap 可以把字节码文件用一种可以阅读的方式转换出类似这种代码:  
  0 bipush 10
  2 newarray 8 (byte)
  4 astore_1
  5 getstatic #16 <java/lang/System.out>
  8 aload_1
  9 iconst_0
 10 baload
 11 invokevirtual #22 <java/io/PrintStream.println>
 14 aconst_null
 15 astore_2
 16 aconst_null
 17 astore_3
这个过程叫什么呢?我看网上有说反汇编什么的,这个工具搞出来的东西是汇编代码什么的吗?强迫症求大神帮忙解释。
[解决办法]
这是查看java字节码的
 0 bipush 10  ----给变量赋值为10
  2 newarray 8 (byte) ----分配数组
  4 astore_1
  5 getstatic #16 <java/lang/System.out>  ----取得静态变量
  8 aload_1
  9 iconst_0
 10 baload
 11 invokevirtual #22 <java/io/PrintStream.println>---调用println方法
 14 aconst_null
 15 astore_2
 16 aconst_null
 17 astore_3
[解决办法]
javap 命令是看字节码。
jd-gui 反编译class文件出来的是 java代码,绝大部分是可以看懂的
[解决办法]
.class反编译之后是.java。里面就是JAVA代码,楼主直接能看懂

热点排行