通过两个不同的命令行调用java是否涉及两个不同的JVM或两个相同JVM的独立实例。JVM的实例
Q
JVM的实例
8
A
回答
21
JVM是Java虚拟机,它是加载类(代码)和共享对象(数据)的内存空间。 JVM相当于一个操作系统进程。
当您在命令行中输入java...
时,您正在执行一个独立的进程,用于加载内存中的Java类,来自Java和您的基类(来自.class文件或指示的.jar)。
另一个java...
命令将使用自己的内存加载一个不同的进程,并自行加载类。
实例词混淆:当你说'两个相同的JVM实例'。通常将一个JVM的实例表示为一个单独的进程,即一个加载的独立JVM。如果您说:两个进程正在运行JVM 1.5,那么它们是相同的JVM,但它们是不同的进程,不同的“实例”,在所有意义上都是独立的。
Web应用程序混淆: Web应用程序(例如)只是一堆实例化的类和对象,在Web服务器中出现一些URL。您可以使用10个不同的应用程序启动Tomcat - 即10个不同的类和对象,每个类都有不同的请求,但实际上它们共享相同的内存空间(OS进程)。一个webapp不能触及其他webapp的对象,因为没有人给它提供对其他对象的引用(并且类以某种方式被隐藏,但是这是另一个叫做class-loading的故事)。
1
1
1
如果您从它们的JDK/JRE 1.6版本的JDK/JRE版本1.6开始,使用相同的源路径两次启动Sun的java.exe,那么您将获得两个独立且不同的JVM实例。除非通过应用程序对其进行配置,否则它们之间不会共享。如果你想要两个不同的JVM运行,你必须从一个位置启动一个类型的java.exe(比如1.5),并从另一个位置启动一个java.exe(1.6版本)。
相关问题
- 1. 跨JVM或应用程序实例或Tomcat实例的单身
- 2. 在新实例中运行JVM或暂停JVM一段时间
- 3. AppEngine快速杀死JVM实例
- 4. JVM getObjectSize示例
- 5. Google Cloud Dataflow中的每个GCE实例中实例化了多少个JVM?
- 6. Docker和JVM,是否为每个docker实例创建一个新的JVM安装?
- 7. JVM实现JRE
- 8. 存储在JVM中的对象的实例变量在哪里?
- 9. 实例的大小在不同的JVM不同
- 10. DataNucleus的JDO在同一个JVM中的多个实例
- 11. JVM HEAPDUMP:内存在的“java.util.concurrent.ConcurrentHashMap中的$段一个实例积累
- 12. 如何为从eclipse执行的Tomcat实例设置JVM选项
- 13. 一个JVM中两个JRuby实例之间的共享对象
- 14. 在多个JVM上配置ActiveMq侦听器的多个实例
- 15. 什么是导致替代JVM语言的实际用例?
- 16. 强制applet加载到相同的JVM实例中?
- 17. 黄瓜JVM硒例如
- 18. 在同一个jvm中一次运行多个spark实例的最佳实践?
- 19. java在GAE环境中与多个JVM实例同步
- 20. 在使用Selenium,TestNG和Cucumber-JVM时共享一个WebDriver实例
- 21. 为什么在Java EE Application Server中使用单个JVM实例?
- 22. 有没有办法在JVM中关闭Hazelcast实例?
- 23. Eclipse - 这个Java实例不支持32位JVM
- 24. Orientdb:这个java实例不支持64位JVM
- 25. 在JVM中有多少个类文字实例可以存在?
- 26. 机库,错误:此Java实例不支持32位JVM
- 27. ConcurrentLinkedQueue $节点实例增长和JVM引发OOM
- 28. 在多个JVM上维护单个实例
- 29. java如何确保每个JVM只有一个枚举实例
- 30. 在单个JVM实例中部署Clojure应用程序
你知不知道这两个答复都是等价的? – Riduidel 2010-09-06 14:53:52
你应该更具体。 JVM对你有什么不同,是什么?你要求什么区别? – splash 2010-09-06 15:01:02