对Java跨平台的理解

欢迎关注我的公众号——日更的小易
对Java跨平台的理解

Java的厉害之处在于,下载JDK的时候我们就已经解决了跨平台的问题。——小易

我们经常说的Java跨平台,是指Java语言的跨平台,而Java语言下面的Java虚拟机是不跨平台的!甚至JDK(因为包含了JVM)也是不跨平台的!
不同平台(包括不同系统和不同位数)都有不同的JVM,但是我们不需要关心,因为我们下载JDK的时候已经解决了跨平台的问题了,如下图:
对Java跨平台的理解

我们怎么理解呢?
首先,JVM模拟了操作系统,也具备了内存堆栈、线程、类似于CPU的执行引擎,JVM可以直接与操作系统打交道,是因为JVM大部分代码使用C/C++写的;总结就是,操作系统和Java语言之间隔了一层JVM。
而"一次编写,到处运行"的口号指的是用Java写的代码,可以不做修改的在另一台不同系统的机器上运行,但是前提是新机器要有匹配的JDK。开发者并不需要关心不同平台的差异,在下载JDK的时候我们就解决了跨平台的问题。
注意,JDK是包含JVM的,但是我们在说明跨平台时只需要关注虚拟机JVM即可。
对Java跨平台的理解