对于几乎所有的平台,int都需要4个字节。Java参考资料怎么样?
Map<String, String> m = null;变量m对32位/64位JVM占用多少空间?
byte[] b = new byte[10];上面的字节数组占用了10个字节,但是对b的引用占用了多少额外空间?我想b至少包括一个地址和一个长度,有人能给我详细信息吗?
发布于 2012-07-13 18:21:01
在大多数JVM(无论是32位还是64位)上,对象中的引用使用4个字节,因为最近的64位JVM使用Compressed Oops,在一些64位JVM上最多使用32-GB的堆,它需要8个字节。
但是,堆栈上的大小通常不会被计算在内,只有堆的大小很重要,在这种情况下,堆上的大小不会被计算在内。
byte[10]实际上使用~24字节,因为它包括8-12字节的头,并且对象被分配在8字节的边界上。
发布于 2012-07-13 18:20:44
从字面上看,在大多数JVM上,32位JVM上的所有引用都需要4个字节,一个64位JVM需要8个字节。
发布于 2012-07-13 18:30:53
根据给出的规范,对引用变量的内存没有限制,这取决于J.V.M的开发人员,他们可以在32位计算机上使用32位,在64位计算机上使用32位或64位,这完全取决于jvm程序员
https://stackoverflow.com/questions/11468510
复制相似问题