怎么看懂java class文件中的指定?它是汇编语言吗
如何看懂java class文件中的指定?它是汇编语言吗?
我的JAVA源代码是:
用javap -c MyJava命令处理后是:
比如iconst_3,istore_1等,这些指令是什么语句?它是汇编语言吗?
------解决方案--------------------
不是汇编语言,是伪代码指令(和汇编语言相似),JVM就是解析这些指令,把它翻译成相应的二进制机器码来执行
LZ想了解更多,可以看看些深入JVM的资料
我的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: return public 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的资料