如果我在物理机器上启动Java应用程序,然后启动第二个Java应用程序,第三个应用程序......等等。
每次启动新的Java虚拟机时。这样每个应用程序都拥有自己的JVM?
或者是为物理机的操作系统放大的第一个JVM分配的内存以及所有应用程序在一个JVM中运行? 这样总会只有一个JVM。
答案 0 :(得分:2)
实际上当你“启动一个应用程序”时,你正在做的是启动一个新的JVM并告诉它通过命令行参数执行一个类。
但是,在servlet容器内执行的Web应用程序中,每个应用程序都有自己的类加载器,因此它们不会共享静态变量的内容。这可能会让您觉得每个JVM都运行在不同的JVM上。
答案 1 :(得分:2)
JVM - JRE的实例。运行应用程序时 - 初始化新的JVM。应用程序完成后 - 垃圾收集器将删除该实例。
答案 2 :(得分:-1)
每次启动新的Java应用程序时,都会创建一个新的JVM实例。应用程序在此JVM实例中运行。