1、说明
(1)即时编译方式:解释器先将字节码编译成机器码,然后再执行该机器码。
(2)解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程序的所有操作。
常用的是第二种方法。因为JVM规范描述有足够的灵活性,所以它可以更高效地将字节码转换成机器码。对那些对运行速度有更高要求的应用程序,可以使用解释器将Java字节码立即编译成机器码,从而很好地保证了Java代码的可移植性和高性能。
2、实例
public static void mAIn(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=4, args_size=1
0: iconst_1
1: istore_1
2: iconst_2
3: istore_2
4: iconst_1
5: iconst_2
6: invokestatic #2 // Method calc:(II)I
9: istore_3
10: return
static int calc(int, int);
descriptor: (II)I
flags: ACC_STATIC
Code:
stack=6, locals=2, args_size=2
0: iload_0
1: i2d
2: ldc2_w #3 // double 2.0d
5: invokestatic #5 // Method java/lang/Math.pow:(DD)D
8: iload_1
9: i2d
10: ldc2_w #3 // double 2.0d
13: invokestatic #5 // Method java/lang/Math.pow:(DD)D
16: dadd
17: invokestatic #6 // Method java/lang/Math.sqrt:(D)D
20: d2i
21: ireturn
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

评论(0)