【java基础知识】使用javap对代码进行反汇编
2018-06-27 09:06
405 查看
不想废话,直接上代码
TestJavap.java
编译
得到 TestJavap.class
利用javap查看运行逻辑
输出
上面程序运行输出
博客
https://my.oschina.net/gmarshal/blog/1836109
欢迎关注我的个人微信订阅号:(据说这个头像程序猿专用)
TestJavap.java
public class TestJavap { public static void main(String[] args){ int i = 0; i = i++; System.out.println(i); } }
编译
> javac TestJavap.java
得到 TestJavap.class
public class TestJavap { public TestJavap() { } public static void main(String[] var0) { byte var1 = 0; byte var10000 = var1; int var2 = var1 + 1; var1 = var10000; System.out.println(var1); } }
利用javap查看运行逻辑
> javap -c TestJavap.class
输出
Compiled from "TestJavap.java" public class TestJavap { public TestJavap(); Code: 0: aload_0 1: invokespecial #1 // Method java/lang/Object."<init>":()V 4: return public static void main(java.lang.String[]); Code: 0: iconst_0 // 将0放入栈顶 1: istore_1 // 将栈顶值放到变量1中 2: iload_1 // 将变量1放入栈顶 3: iinc 1, 1 // 变量1的值+1 6: istore_1 // 将栈顶值放到变量中 7: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream; 10: iload_1 11: invokevirtual #3 // Method java/io/PrintStream.println:(I)V 14: return }
上面程序运行输出
0
博客
https://my.oschina.net/gmarshal/blog/1836109
欢迎关注我的个人微信订阅号:(据说这个头像程序猿专用)
![](https://static.oschina.net/uploads/img/201805/11091915_qQW2.jpg)
相关文章推荐
- Java 基础小知识二:使用Comparator 对ArrayList 进行排序
- Java基础知识强化之IO流笔记72:NIO之 NIO核心组件(NIO使用代码示例)
- Java基础知识强化之集合框架笔记29:使用LinkedList实现栈数据结构的集合代码(面试题)
- Linux下使用Vim进行C/C++ 编程基础知识详解
- 使用javap 对java方法进行签名
- java基础知识记录--java代码查错 (摘自张孝祥整理java面试题)
- 使用JNI进行Java与C/C++语言混合编程(2)--在C/C++中调用Java代码
- JavaMail基础知识6-JavaMail API使用之消息的回复及转发
- java基础知识记录--java代码查错 (摘自张孝祥整理java面试题)
- Java 基础小知识一: 使用ResourceBundle 和 MessageFormat 实现国际化信息输出
- windows下使用ffmpeg进行视频转码,图片拉取的Java测试代码
- 提高你的Java代码质量吧:使用valueof前必须进行校验
- eclipse中使用javap分析java代码备忘
- 使用JNI进行Java与C/C++语言混合编程(2)--在C/C++中调用Java代码
- JavaMail基础知识3-JavaMail API使用之消息提取
- 使用Java代码控制ADF table列进行QBE方式的过滤
- 如何使用Eclipse和GDB对JNI代码进行调试(JAVA和C)
- 使用JNI进行混合编程:在C/C++中调用Java代码
- JavaMail基础知识8-JavaMail API使用之对 HTML 消息的处理
- 使用Java进行SNMP编程-SNMP4J-SNMPv3-代码实例