为什么我们在启动jvm时指定最小和最大堆内存

可能重复:
为什么(Sun)JVM具有固定的内存使用上限(-Xmx)?

JVM应该像任何其他进程一样,在一个正常的过程中,我们没有指定可用的最大内存,对于32位操作系统来说这个限制是4GB,等等。

那么为什么在JVM中它不那么简单,JVM可以根据需要使用最大内存来存储堆内存以及本地内存。

只是一个猜测,如果JVM知道可用的最大堆内存,是否会使事情变得更有效率? 它是如何工作的?

JVM可以用来对一个进程进行沙箱。 内存需要限制在一个有效的沙箱中(以确保它不占用所有内存 – 包括操作系统所需的内存)。

通过这种方式,运行Java应用程序是“更安全”的,因为它不太可能搞砸你的计算机。