论坛首页 Java企业应用论坛

java中类型占用内存大小

浏览 4093 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (8)
作者 正文
   发表时间:2011-11-14  
/**
*一个引用:4字节

*一个Object:8字节

*一个Integer:16字节 == (8 + 4) / 8 * 8

*一个int:4字节

*长度为0的数组大小:JRo64=24,  Sun32=12

*引用大小,如Object = null:      JRo64=JRo32=4, Sun32=4, Sun64=8

*无成员的对象大小,如new Object();:     JRo32=JRo64=8, Sun32=8, Sun64=16

*new byte[0]:                        JRo32=JRo64=8+8 Sun32=8+4, Sun64=16+8

*长度l的byte数组:(l+19)/8*8

*长度l的char/short数组:(l*2+19)/8*8 == (l+9)/4*8

*长度l的String:(l+1)/4*8+40

*长度l的int数组:(l*4+19)/8*8 ==(l+4)/2*8

*长度l的long数组:(l*8+19)/8*8 == (l+2)*8
*/

   发表时间:2011-11-14  
你这积分来得容易啊
0 请登录后投票
   发表时间:2011-11-15  
iminto 写道
你这积分来得容易啊

跟背书似的。。。
0 请登录后投票
   发表时间:2011-11-15  
回复下还这么多要求,这个不能写,那个不能写,烦
0 请登录后投票
   发表时间:2011-11-16   最后修改:2011-11-16
叫那些电脑内存配置不足4G的人去死
0 请登录后投票
   发表时间:2011-11-16  
*一个Integer:16字节 == (8 + 4) / 8 * 8

这个(8 + 4) / 8 * 8不是等于12么?
0 请登录后投票
   发表时间:2011-11-16  
zzchao 写道
*一个Integer:16字节 == (8 + 4) / 8 * 8

这个(8 + 4) / 8 * 8不是等于12么?


一下切中要害,哈哈!顶一个。
0 请登录后投票
   发表时间:2011-11-17  
int在jvm里就不可以是8个字节么!
0 请登录后投票
   发表时间:2011-11-17  
kanny87929 写道
叫那些电脑内存配置不足4G的人去死

这个不能这么说啊,我们公司办公都只给2G。。。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics