2017-02-17 89 views
3

如果我在物理機器上啓動Java應用程序,然後啓動第二個Java應用程序,第三個應用程序......等等。Java虛擬機:共享還是擁有它自己的每個應用程序?

是否每次都是新的Java虛擬機啓動。這樣每個應用程序都有它自己的JVM?

或者是分配給物理機操作系統放大的第一個JVM的內存,並且所有應用程序都在一個JVM中運行? 這樣總會只有一個JVM。

+0

看到此:http://stackoverflow.com/questions/20307500/how-many-java-virtual-machine-extst-on-computer?rq=1 – zed

+0

請參閱[這裏](http://stackoverflow.com/questions/5947207/is-there-one-jvm-per-java-application),同樣的問題已經被問過。 – theasianpianist

回答

-1

每次啓動新的Java應用程序時,都會創建一個新的JVM實例。應用程序在此JVM實例中運行。

2

實際上當你「啓動一個應用程序」時,你正在做的是啓動一個新的JVM並告訴它通過命令行參數執行一個類。

但是,在servlet容器中執行的Web應用程序中,每個應用程序都有它自己的類加載器,因此它們不會共享靜態變量的內容。這可能會給你一個印象,即每個JVM都運行在不同的JVM上。

2

JVM - JRE的實例。當你運行應用程序時 - 新的JVM被初始化。應用程序完成後 - 實例被垃圾收集器刪除。

相關問題