我的JAVA源代码是:
- Java code
public class MyJava { public static void main(String[] args) { int i = 3; System.out.println(i); }}
用javap -c MyJava命令处理后是:
- Java code
Compiled from "MyJava.java"public class MyJava extends java.lang.Object{public MyJava(); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: returnpublic static void main(java.lang.String[]); Code: 0: iconst_3 1: istore_1 2: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream; 5: iload_1 6: invokevirtual #3; //Method java/io/PrintStream.println:(I)V 9: return}
比如iconst_3,istore_1等,这些指令是什么语句?它是汇编语言吗?
------解决方案--------------------
不是汇编语言,是伪代码指令(和汇编语言相似),JVM就是解析这些指令,把它翻译成相应的二进制机器码来执行
LZ想了解更多,可以看看些深入JVM的资料