我注意到在设置堆大小时,人们更喜欢使用64、128、256、1024等数值。如果我给出这些数字之间的值(比如500),JVM不会接受吗?为什么这些数字很重要且备受青睐?为什么我们也按照这种模式升级RAM?
请帮助我理解。
请帮助我理解。
JVM可以接受任何值,这并没有问题。使用2的n次方的值只是一种“惯例”,在实践中使用其他值也不会产生负面影响。
如果您这样考虑:
1个字节等于8个比特
1千字节(KB)= 1024个字节
1兆字节(MB)= 1024 KB
1吉字节(GB)= 1024 MB
……以此类推……
这不仅仅是2^n
。在计算机的内存方面,一切都与数字8密切相关 - 这是大多数现代计算机中定义一个字节的数字。
比特被分组在一起的主要原因是为了表示字符。由于所有计算机事物的二进制性质,理想的“块”比特是2的幂次方,即1、2、4、8、16、32……
(基本上是因为它们总是可以被分成相等的较小包裹(这也创造了存储大小的快捷方式,但那是另一个故事))。显然,4个比特(在某些领域中称为nybble)可以给我们16个唯一的字符。由于大多数字母表都比这更大,所以2^8(或256个字符)是更合适的选择。
存在使用其他长度字节(特别是7或9)的机器。这主要是因为它们不太容易操作而没有得到广泛应用。您肯定不能将奇数一分为二,这意味着如果您要分割字节,则必须跟踪比特串的长度。
最后,8也是一个方便的数字,许多人(如心理学家等)声称人类大脑通常只能立即回忆起7-8件事情(不进行记忆技巧的情况下)。
兆字节
(M或m)或千兆字节
(G或g)修饰符。java -Xms500M -Xmx500M -jar myJavaProgram.jar
此外,请查看此链接。