64位JVM上的Object引用的内存要求

Thi*_*ilo 17 java 64-bit jvm memory-management

对32位JVM(至少在Hotspot上)上的对象的引用占用4个字节.

64位Hotspot JVM需要8个字节吗?或者是一些巧妙的压缩?如果没有,每个Object[]都需要两倍的堆内存,我不知怎的想(希望,期望)不是这样.

更新/额外问题:这是否真的重要,或者这是一个可以忽略不计的增加,因为大多数引用指向远大于几个字节的对象(而有人可能会争辩说这些对象主要包含对其他对象的引用) ?

gpe*_*che 16

在64位系统中,对象引用通常为8个字节长.但是在Sun/Oracle最近的JVM中,您可以启用Compressed Oops,这会将参考大小减小到4个字节,但代价是堆大小的限制较小.


aio*_*obe 6

根据Java平台性能,它没有严格定义,但通常在64位系统上为8个字节:

引用的大小没有很好地定义,但在32位系统上通常为4个字节,在64位系统上通常为8个字节.