有,所以java虚拟机就有多种版本,有window版的jdk安装, linux版的, mac版的,都有。
你用什么类型的操作系统,就安装什么类型的java虚拟机(jdk/jre)
之所以有这么多版本就是因为各种操作系统的兼容问题。 你在编程序的时候,java己经帮你做好判断了。就不需要你再判断了。
补充你的补充:
是的,每种不同的硬件平台都有一个虚拟机, 比如电脑上的和手机上的就不一样,有些家电上也独立写了自己的虚拟器。
麻烦是麻烦,但麻烦的不是你,是写虚拟机的开发人员,所以sun“把麻烦留给了自己,把方便留给了广大的java开发人员”。
java的开发人员就不必关心一个int在32位机器上占用多少个字节,在64位机器又如何表示?当然也就少了很多很多的判断,这些都被sun的虚拟机封装好了。
虚拟机有专业的开发人员去弄,普通开发人员根本不需要关心, 其实只要搞清楚原理后在各种硬件平台上做移植也是很容易的,只要有经验会很快。
JAVA虚拟机不是没有兼容问题 而是在每个操作系统上都做了一个 所实现的方式都不相同 但都能解析预定义的文件格式--CLASS字节码
每一种操作系统都会有一种虚拟机。主流操作系统没几个,为每个做一个不算啥。