通过阅读本文,我知道每个 Java 应用程序都将运行在特定的 Java 虚拟机实例中。所以如果我执行以下命令("Java -jar test1.jar","Java -jar test2.jar",我会得到系统中的两个进程。并且如果每个命令都使用默认的堆大小,例如256M。总的内存开销是512M,对吗?还有其他问题:
- Java虚拟机是守护进程,随系统一起启动吗?
- 当我执行“java -jar test1.jar”时,它会创建一个Java虚拟机实例,然后执行main函数。这是否意味着每个正在运行的 Java 应用程序都是 Java 虚拟机的子线程或进程?
- 是否每个正在运行的 java 应用程序都是独立的,其他应用程序无法从这个正在运行的 java 应用程序中获取变量、方法、常量等?
- 如果一个正在运行的 java 应用程序崩溃,是否会影响其他正在运行的 java 应用程序?
PS:我google了一下,得到了很多不同的答案,我完全糊涂了。任何可以帮助我解决此类问题甚至更深入的Java虚拟机的人。例如,它是如何工作的。