跨平台性和跨语言性属于字节码的特点,并不是JVM虚拟机的特点,字节码是运行在JVM虚拟机上的。
跨平台性:开发人员写的java代码,一旦编译成字节码文件,就可以放在不同的操作系统上运行。比如windos、linux、macOs等,执行的效果是一样的。
跨语言性:由于JVM虚拟机只识别字节码,和java语言是没关系的。不管是什么语言,只要能编译成字节码,就能使用JVM虚拟机进行解释执行。业界除了java语言之外,还有很多语言,都能编译成字节码,比如Scala、Kotlin、Groovy、JRuby等,这些语言写的程序,只要编译成字节码,就能在JVM虚拟机上运行。