如果我在物理机器上启动一个Java应用程序,然后我启动第二个Java应用程序,第三个应用程序…等等。
每次启动一个新的Java虚拟机。这样每个应用程序都有自己的JVM吗?
还是物理机的操作系统扩大了为第一JVM分配的内存,所有应用程序都在一个JVM中运行?因此永远只有一个JVM。
JVM-JRE的实例。当您运行应用程序时-新JVM被初始化。应用程序完成后-该实例被垃圾收集器删除。
实际上,当你“启动一个应用程序”时,你正在做的是启动一个新的JVM,并通过命令行参数告诉它执行一个类。
但是,在servlet容器内执行的Web应用程序中,每个应用程序都有自己的类加载器,因此它们不会共享静态变量的内容。这可能会给你一种印象,即每个应用程序都在不同的JVM上运行。
每次启动新的java应用程序时,都会创建一个新的JVM实例。应用程序在这个JVM实例中运行。