作者:苏月虹
链接:https://www.zhihu.com/question/30753144/answer/53095878
来源:知乎
链接:https://www.zhihu.com/question/30753144/answer/53095878
来源:知乎
Java跨平台是怎样实现的呢?这就要谈及Java虚拟机(Java Virtual Machine,简称 JVM)。
我们编写的Java源码,编译后会生成一种 .class 文件,称为字节码文件。
字节码不能直接运行,必须通过JVM翻译成机器码才能运行。
Java虚拟机就是负责将字节码文件翻译成特定平台下的机器码然后运行。
JVM也是一个软件,不同的平台有不同的版本。只要在不同平台上安装对应的JVM,就可以运行字节码文件。
同一个Java程序,通过JVM这一”中间层“,就能在不同平台上运行,实现了”一次编译,到处运行“。
JVM是一个”桥梁“,是一个”中间件“,是实现跨平台的关键,Java代码首先被编译成字节码文件,再由JVM将字节码文件翻译成机器语言,从而达到运行Java程序的目的。
注意:编译的结果不是生成机器码,而是生成字节码,不同平台下编译生成的字节码是一样的,但是由JVM翻译成的机器码却不一样。