码迷,mamicode.com
首页 > 其他好文 > 详细

compile once,run anywhere

时间:2018-05-05 14:15:45      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:bubuko   执行   方式   jvm   AC   分享图片   代码   技术   源代码   

编译一次,到处运行;指的是Java语言的跨平台能力,而这种能力主要由Java虚拟机提供的,那Java语言从源代码到可以执行的机器码是怎样编译、运行的呢?Java源代码经过javac编译后生成屏蔽操作系统和硬件的字节码,再经由JVM编译、解释执行。

技术分享图片

Java语言对字节码文件提供了三种执行方式:

  1. 解释执行,逐条代码边翻译边执行
  2. 编译执行(动态编译),由JIT(存在于JVM中,Java in time,Java即时编译器)将热点代码(使用频率高的代码)编译为机器码
  3. AOT二次编译,先形成静态的二进制文件,运行时指定该静态文件,需要手动指定,利用jaotc工具可以实现静态编译

通过指定参数选择Java字节码的执行方式:

  1. java -Xmixed参数,编译和解释执行混合执行的方式,默认方式
  2. java -Xint,解释(interpret)执行
  3. java -Xcomp 编译(compile)执行
  4. jaotc工具指定静态编译模块,待运行时加载该模块即可

 

compile once,run anywhere

标签:bubuko   执行   方式   jvm   AC   分享图片   代码   技术   源代码   

原文地址:https://www.cnblogs.com/boboshenqi/p/8994418.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!