【精致Java教程】02:Java的跨平台原理

Java的一大特色就是“write once, run anywhere”即“一次编译,到处运行”。就是说你不用专门为每个平台写一份代码,你写的Java程序在任何平台都能跑起来。

它的实现原理是在系统层面上又增加了一层虚拟机(Java Virtual Machine,简称JVM),且为每个平台都定制了对应的虚拟机。然后Java程序是在虚拟机上跑的,因此平台无关。

Java的运行流程是:程序员写了源代码(Source Code,.java后缀,跨平台),然后经过编译器编译成字节码(Byte Code,.class后缀,二进制文件,跨平台),字节码是所有虚拟机都能理解的中间文件。然后交给虚拟机(不跨平台,每个平台都有对应的虚拟机)去运行。
所以对“write once, run anywhere”更准确的理解是,“一次编译,到处装虚拟机,所以到处运行”。

整个流程如下图所示。
<pre>
注:因为我的文章的假想读者是纯新人,所以编译器和虚拟机这两部分我用黑色做背景代表神秘的黑科技,暂时不需要管这里面发生了什么。
</pre>

JVM

推荐阅读更多精彩内容

  • 从今天开始读《深入理解 Java 虚拟机》一书,并开设了同名专题 深入理解 Java 虚拟机。计划在 2 周内将全...
    SawyerZh阅读 9,765评论 17 215
  • 姓名:周君会 学号:17011210526 转载自: http://www.jianshu.com/p/...
    lotus儿阅读 1,630评论 1 9
  • 获取元素两次点击的时间差 判断两次点击时间差 我叫洱月,我愿意陪你到洱海风花雪月,你,看到我了吗?
    洱月阅读 739评论 0 3
  • 标识符 标识符定义 定义: 标识符是指变量、函数、属性的名字,或者函数的参数 区分大小写 必须以字母 或$或_开头...
    sunny519111阅读 191评论 0 0
  • 昨天看到乌龙明月在《旅途中的思考——给30岁人们的20条人生建议》忽然觉得被痛击到——“假如,我说的是假如,你的生...
    wenzi2507阅读 89评论 0 0