Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么只在java API get heap init值为0时才设置Xmx值?_Java - Fatal编程技术网

为什么只在java API get heap init值为0时才设置Xmx值?

为什么只在java API get heap init值为0时才设置Xmx值?,java,Java,当我设置Xmx值时,通过Java API发现heap init值为0, 我设置了Xms和Xmx值,通过Java API发现heap init值不是0, 我没有设置Xms和Xmx值,我通过javaapi发现heap init值不是0 -Xmx512M -Xms256M-Xmx512M 未设定 我发现JDK1.5会有这个问题。 MemoryUsage-heapMemoryUsage=ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); h

当我设置Xmx值时,通过Java API发现heap init值为0, 我设置了Xms和Xmx值,通过Java API发现heap init值不是0, 我没有设置Xms和Xmx值,我通过javaapi发现heap init值不是0

  • -Xmx512M
  • -Xms256M-Xmx512M
  • 未设定
  • 我发现JDK1.5会有这个问题。 MemoryUsage-heapMemoryUsage=ManagementFactory.getMemoryMXBean().getHeapMemoryUsage(); heapMemoryUsage.getInit()


    我想知道我尽力解释的原理:
    -Xms
    允许您设置最小堆大小。这就是JVM的起点。由于您的进程需要更多内存,它会从操作系统请求内存
    -Xmx
    用于设置最大堆大小;如果进程超过了为
    -Xmx
    设置的值,它将抛出
    java.lang.OutOfMemoryError


    也许,这就是你所需要的:?

    你的问题很难理解。英语很差,但这是可以接受的,不过假设我读对了,这个问题似乎不明显。从我收集的关于这个问题的信息来看,您通过“Xmx”(最大堆大小)设置的值是“0”,@personal-您可以将您的命令行参数粘贴到这里吗?“最大堆大小,并扩展为最大内存”只是一个建议,因为您提到了内存。如果您愿意,我将删除此评论。我将把您的评论留给后人:Java中的内存是堆和堆栈,并且
    -Xmx
    不限制堆栈。您是否可以发布一(两)个关于该语句的链接?我不是说你撒谎,但我很好奇,因为我可以发誓Xms/Xmx与堆/堆栈深度相关,而不是与内存直接相关。我真的很喜欢阅读这个tbh,你知道的越多。非常感谢你回答我的问题,我重新讲述了这个问题。你能理解吗?你现在回答的不是我说的want@Immortal,我个人认为这可能与豆子有关。我承认这完全有可能是一个不正确的说法,尽管我不能肯定。但是,此时,我建议您尝试使用
    Runtime.getRuntime()
    中的函数来计算可用/已用/总内存值,看看结果是否相同。我使用Java版本8/9,我从未使用过1.5,即使在linux上,1.6也是我记得使用过的最早版本。