谁能解释一下,如果三个java应用程序在同一台机器上运行,堆空间将如何分配?
每个JVM是否分配单独的堆空间。否则,它将在三个应用程序中通用。
提前谢谢。
发布于 2013-09-20 18:47:27
每个JVM都将拥有自己的堆内存(并且每个堆内存都将包含许多对象)。您可以阅读这篇文章以获得进一步的说明:http://javarevisited.blogspot.com.es/2011/05/java-heap-space-memory-size-jvm.html
发布于 2013-09-20 18:44:52
当应用程序创建一个新对象时,jvm子分配一个连续的堆内存区域来存储它(请参阅THIS )。
发布于 2013-09-20 19:49:08
每个JVM都有自己的“堆空间”,也就是说,每个JVM都有自己的虚拟地址空间,用于堆。从每个JVM的角度来看,它都有自己的内存空间,只有它自己才能访问。
然而,在幕后,它有点复杂。每个JVM的私有内存空间是由操作系统内核的虚拟内存系统创建的假象。在实践中,计算机上运行的所有程序必须共享可用的(可能是有限的) RAM。因此,JVM正在争夺可用的RAM。就“堆空间”是RAM的一部分而言,堆空间并不是独立的。特别是,如果一个JVM运行一个贪婪的应用程序,该应用程序使用了大量的堆空间(因此也就是大量的RAM),因此JVM的总工作集超过了RAM,那么所有的JVM都会变慢。
https://stackoverflow.com/questions/18914790
复制相似问题