广元市剑阁县建设局网站,昆明网站建设推荐谁好呢,中国社区建设展示中心网站,物联网平台的作用概述#xff1a;javap是 Java class文件分解器#xff0c;可以反编译#xff0c;也可以查看java编译器生成的字节码#xff0c;从而对代码内部的执行逻辑进行分析。语法#xff1a;把java文件编译为class文件#xff1a;javac Test.java (Test.java为java文件名) 生成对…概述javap是 Java class文件分解器可以反编译也可以查看java编译器生成的字节码从而对代码内部的执行逻辑进行分析。语法把java文件编译为class文件javac Test.java (Test.java为java文件名) 生成对应的 .class 文件 Test.class执行javap操作javap 命令行 class文件名称(不加 .class后缀)例如 javap -c Test命令行-help 输出 javap 的帮助信息。-l 输出行及局部变量表。-b 确保与 JDK 1.1 javap 的向后兼容性。-public 只显示 public 类及成员。-protected 只显示 protected 和 public 类及成员。-package 只显示包、protected 和 public 类及成员。这是缺省设置。-private 显示所有类和成员。-J[flag] 直接将 flag 传给运行时系统。-s 输出内部类型签名。-c 输出类中各方法的未解析的代码即构成 Java 字节码的指令。-verbose 输出堆栈大小、各方法的 locals 及 args 数,以及class文件的编译版本-classpath[路径] 指定 javap 用来查找类的路径。如果设置了该选项则它将覆盖缺省值或 CLASSPATH 环境变量。目录用冒号分隔。- bootclasspath[路径] 指定加载自举类所用的路径。缺省情况下自举类是实现核心 Java 平台的类位于 jrelibt.jar 和 jrelibi18n.jar 中。-extdirs[dirs] 覆盖搜索安装方式扩展的位置。扩展的缺省位置是 jrelibext。示例一个Demo.java文件(存放在桌面)class Demo{public static void main(String[] args){Integer aInteger 56;int aInt0;int aInt2 123;String shelloworld;String aString new String(IamString);}}反汇编结果Compiled from Demo.javaclass Demo {Demo();Code:0: aload_01: invokespecial #1 // Method java/lang/Object.:()V4: returnpublic static void main(java.lang.String[]);Code:0: bipush 562: invokestatic #2 // Method java/lang/Integer.valueOf:(I)Ljava/lang/Integer;5: astore_16: iconst_07: istore_28: bipush 12310: istore_311: ldc #3 // String helloworld13: astore 415: new #4 // class java/lang/String18: dup19: ldc #5 // String IamString21: invokespecial #6 // Method java/lang/String.:(Ljava/lang/String;)V24: astore 526: return}对其中的语法不清楚啊可以参照一下这两篇博客javap -c 命令详解 http://blog.csdn.net/junsure2012/article/details/7099222JVM字节码之整型入栈指令(iconst、bipush、sipush、ldc) http://www.cnblogs.com/luyanliang/p/5498584.html如果还不清楚放大招了ORACLE 官方文档 Chapter 4. The class File Format http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html常用反编译工具1、jd-gui最好用但有时反编译出来的结果会有遗漏。https://code.google.com/p/cxldemo/downloads/detail?namejd-gui.execan2q2、DJ Java Decompiler相对jd-gui易用性上差一些但是反编译过来的结果更准确。http://www.neshkov.com/dj.html3、jclasslib bytecode viewer将字节码转化为JVM指令的工具。http://sourceforge.net/projects/jclasslib/