首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个java引用需要多少堆空间?

一个java引用需要多少堆空间?
EN

Stack Overflow用户
提问于 2012-07-13 18:16:14
回答 3查看 1.4K关注 0票数 1

对于几乎所有的平台,int都需要4个字节。Java参考资料怎么样?

代码语言:javascript
复制
Map<String, String> m = null;

变量m对32位/64位JVM占用多少空间?

代码语言:javascript
复制
byte[] b = new byte[10];

上面的字节数组占用了10个字节,但是对b的引用占用了多少额外空间?我想b至少包括一个地址和一个长度,有人能给我详细信息吗?

EN

回答 3

Stack Overflow用户

发布于 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字节的边界上。

票数 10
EN

Stack Overflow用户

发布于 2012-07-13 18:20:44

从字面上看,在大多数JVM上,32位JVM上的所有引用都需要4个字节,一个64位JVM需要8个字节。

票数 0
EN

Stack Overflow用户

发布于 2012-07-13 18:30:53

根据给出的规范,对引用变量的内存没有限制,这取决于J.V.M的开发人员,他们可以在32位计算机上使用32位,在64位计算机上使用32位或64位,这完全取决于jvm程序员

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11468510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档