有个小问题懂的来解释一下,多谢.
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代码,楼主直接能看懂