32位/ 64位部分与Java无关
事实证明,32位系统中的内存位置由32位无符号整数引用。这最多允许2 ^ 32个可能的存储位置。由于每个位置存储1个字节,因此您可以选择2 ^ 32个字节或4 GB。
在64位系统上,有2 ^ 64个位置,即16艾字节。
现在,在Windows中,连续的部分成为一个大问题,但这就是Windows的工作方式。这个想法是您需要为堆提供一个完整的“不间断”范围。可悲的是,Windows在中间的某个地方分配了一些内存。基本上,这将使您剩下大约一半的左侧或一半的右侧(大约1.5-2GB的块)来分配堆。



