有关Garbage Collector的问题

Super_007 2004-07-25 08:09:37
请问程序中使用形如Integer i = new Integer (0);这样的语句要占用多少内存空间,正确答案是需要16字节。它代表着8字节的Integer值,还有8字节的内部额外开销。
据我测试,上述将语句的Integer改为Byte、Short、Long之后都是占用16字节,大家能告诉我这是为什么吗? 是不是这几种类型都是值占8字节,额外开销占8字节啊?谢谢

注意:此处说的是Integer不是integer,Short不是short……
...全文
189 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sean_gao 2004-07-25
  • 打赏
  • 举报
回复
更正:"Interger"应为"Integer"
sean_gao 2004-07-25
  • 打赏
  • 举报
回复
也许是我愚笨,或者无知,但是我怀疑楼主信息的真实性。

"8字节的Integer值,还有8字节的内部额外开销":
>>int在Java中占多少个bit?32个。合多少byte?4个。字节是什么?byte还是bit?你说的需要多少内存空间又是什么?毕竟类包含了很多其他的除了值以外的东西,这些东西需要的空间32个bit能装得下吗?(楼主的话给我的感觉,值占多少空间,"内部额外开销"就要占多少空间)我怎么越听越不对味儿了?

另外,这些wrapper类(如Interger, Double, Short, Byte等等)具体是怎么实现的?我们有必要关心吗?如果你要深究,那么我问你,为什么Java没有C/C++中的sizeof?如果有sizeof,你会用它来干什么?

也有可能我误解了楼主的意思,如果是这样,请楼主明示,谢谢!
xjffj 2004-07-25
  • 打赏
  • 举报
回复
不对,Long应该是32字节而不是16字节,如果是用sun的jvm而不是用IBM的。
shuneng 2004-07-25
  • 打赏
  • 举报
回复
有必要关注这个问题的吗?
楼主是要研究JVM实现?
lightsword 2004-07-25
  • 打赏
  • 举报
回复
是呀,应该不会,因为这些类型的大小是不一样的.
draco2002 2004-07-25
  • 打赏
  • 举报
回复
我想知道你是怎么测试出来的。
nwsl 2004-07-25
  • 打赏
  • 举报
回复
up and study.
wtjd 2004-07-25
  • 打赏
  • 举报
回复
是呀,Integer的内存是多少byte?
有什么办法可以测量呢?
shine333 2004-07-25
  • 打赏
  • 举报
回复
非常非常非常之迫切地想知道楼主如何测出一个Integer的内存开销,

在我看来,这如同在测量一个分子的直径

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧