compile once,run anywhere

Posted Thinking in coding and life

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了compile once,run anywhere相关的知识,希望对你有一定的参考价值。

编译一次,到处运行;指的是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的主要内容,如果未能解决你的问题,请参考以下文章

谈谈对Java“Write once, run anywhere“的理解《轻松搞定大厂面试》

JSJ——java基本概念一

#ifndef still cannot garantee .h only be compiled once?

java语法基础,具体内容

使用 MFC 清除 ONC RPC SVC_RUN() 退出

天天在捣鼓Docker,你是否真正的把握住了?