JVM不具有跨平台性:
JVM是编译后的机器码,不能跨平台,不同的平台需要安装对应的版本才能运行,但是JVM是实现跨平台的“桥梁”,它将Java的字节码文件翻译成机器码确保了Java的跨平台性。
Java具有跨平台性:
java的跨平台不是指java语言本身具有跨平台特性,而是不同平台上都有可以让java运行环境,这个运行环境就是jre。JRE由JVM和其目录下类库组成,JVM 是 Java 平台的基础,是整个java实现跨平台的最核心的部分,所有的Java程序首先会编译成.class类文件字节码,字节码不能直接与操作系统交互,在运行时JVM通过类加载器加载字节码,以解释或者编译的方式将字节码转换成目标机器码交给本地系统去执行,从而屏蔽了操作系统和硬件的细节,也就实现了“一次编译到处运行“的效果。
如图: