Java 中 Hello, Word! 是怎么跑起来的?

185 阅读1分钟

每个java程序员都是从学习打印Hello,Word!开始的。那么你知道它是怎么跑起来的呢。
如图: 56933EA0-2F3C-4E40-9938-510E9EA2CD35.png

  1. 我们写的java代码通过javac编译成字节码文件。
  2. 使用JDK自带的java工具进行字节码文件的执行。
  3. JVM加载字节码文件,然后按照不同的操作系统将字节码文件解释成响应的机器码。
  4. 再将机器码交给操作系统,由操作系统进行机器码的执行,最后打印出hello,world!

那为什么相同的代码能在不同的操作系统上能跑起来呢?这就是java跨平台特性决定的。

我们在安装配置java的开发环境的时候,不同的操作系统要下载不同版本的jdk, 也就是不同的操作系统有不同的JVM实现,所以jdk是不夸平台的。

java跨平台的核心在于JVM,JVM对编码和操作环境进行了解耦,通过中间层jvm进行联系。
我们在windows、mac、linux等不同操作系统上写的相同的java源代码, 在不同操作系统上编译后的字节码是一致的,而同一段字节码, 在不同的jvm实现上会映射到不同系统的API调用从而实现代码不修改就可以跨平台运行。 java跨平台本质本质上是class字节码跨平台。

这也就是传说中的——
Write once, run anywhere
“一次编写,到处运行”