java - JVM 实例

标签 java jvm

通过两个不同的命令行调用 java 涉及两个不同的 JVM 还是同一 JVM 的两个单独实例。

最佳答案

JVM即Java虚拟机,是加载类(代码)和共享对象(数据)的内存空间。 JVM相当于一个操作系统进程。

当您在命令行中键入 java... 时,您正在执行一个独立的进程,该进程将 Java 类加载到内存中,Java 的基类和您的基类(来自 .class 文件或 .jar你指出)。

另一个 java... 命令将使用自己的内存加载不同的进程,并自行加载类。

实例词混淆:当您说“同一 JVM 的两个实例”时。通常将 JVM 的实例称为单独的进程,也就是加载的独立 JVM。如果您说:两个进程正在运行 JVM 1.5,好吧,从某种意义上说,它是同一个 JVM,它是相同的版本,但它们是不同的进程,不同的“实例”,在所有意义上都是独立的。

网络应用混淆:网络应用(举例来说)只是一堆类和实例化的对象,在网络服务器中访问某个 URL。您可以用 10 个不同的应用程序启动 Tomcat - 它是 10 个不同的类和对象组,每个类和对象处理不同的请求,但实际上它们共享相同的内存空间(OS 进程)。一个 webapp 不能触及其他 webapp 的对象,因为没有人给它一个对其他对象的引用(并且类在某种程度上是隐藏的,但这是另一个故事,称为:类加载)。

关于java - JVM 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3652353/

相关文章:

java - 如何检查和替换java中字符串中包含的特殊字符(\)?

apache - 如何在 Windows 中使用单独的 JVM 配置多个 Tomcat 实例

performance - 改进 Scala 脚本启动时间——客户端模式?

java - DeleteOnExit jvm 关闭

java - tomcat进程突然崩溃

java - JAXB minOccurs 当需要设置为 true 时消失

java - 使用 google-cloud-speech 时在 APK project.properties 中复制的重复文件

java - Java 字符串到日期解析

eclipse - Eclipse JVM配置

java - 如何映射 Map<String,Double>