为什么要在程序和操作系统中间添加一个JVM? Java是一门抽象程度特别高的语言,提供了自动内存管理等一系列的特性。这些特性直接在操作系统上实现是不太可能的,所以就需要JVM进行一番转换。
从图中可以看到,有了JVM这个抽象层之后,Java就可以实现跨平台了。JVM只需要保证能够正确执行.class文件,就可以运行在诸如Linux、Windows、MacOS等平台上了。 而Java跨平台的意义在于一次编译,处处运行,能够做到这一点JVM功不可没。比如我们在Maven仓库下载同一版本的jar包就可以到处运行,不需要在每个平台上再编译一次。 现在的一些JVM的扩展语言,比如Clojure、JRuby、Groovy等,编译到最后都是.class文件,Java语言的维护者,只需要控制好JVM这个解析器,就可以将这些扩展语言无缝的运行在JVM之上了。 应用程序、JVM、操作系统之间的关系
JVM上承开发语言,下接操作系统,它的中间接口就是字节码。