本文小编为大家详细介绍“Java字节码执行的两种方式是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java字节码执行的两种方式是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
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
读到这里,这篇“Java字节码执行的两种方式是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4600288/blog/4472439