Java虚拟机是否包含在所有Java软件中



我是java新手。我知道Java虚拟机是一个帮助运行Java程序的抽象机器。所以我想知道JVM是否包含在所有Java软件中,比如Eclipse?

通常不会。Java被如此多的程序使用,以至于将其与每一个Java软件一起使用会占用比所需多得多的硬盘空间,并且每个程序都必须加载一个全新的JVM实例。此外,每当发现安全漏洞时,每一个软件都必须更新。因此,它通常只安装一次,通常是在安装新计算机或操作系统后不久。

有时,可以在不假设系统上存在Java的情况下开发软件包;因此,它可能包括自己的。有时,它可能还需要某种定制的JVM。

这样做的主要原因很简单,因为Java被数亿甚至数十亿的设备使用。如果虚拟机或运行时不那么普遍,我可以说服我的用户安装它(如果他们自己不是开发人员,通常是一场艰苦的战斗),也可以自己捆绑它。

如果你熟悉静态和动态库的概念,同样的问题也会出现。

你可能已经知道了,

JVM不是一个软件。业主有自己的实施,但如果满足各种实际和合同要求,其他人也可以实施。

抽象规范是一个具体的实现,存在于许多平台上,来自许多供应商,要么是所有软件,要么是硬件和软件的组合,运行时实例承载单个运行的Java应用程序。

JVM更多的是提供一种方法来严格定义在抽象内部体系结构中描述的实现的外部行为(子系统、内存区域、数据类型和指令)

所以,总的来说,JVM是硬件和软件的结合,但并不是所有的Java包都像你所要求的那样包含在内,公平地说,它甚至不理解Java源代码。

最新更新