100 分求助 ! 在JAVA 中如何获取一个对象占用的实际内存大小?

redcony 2006-08-23 09:45:46
100 分求助 ! 在JAVA 中如何获取一个对象占用的实际内存大小?
...全文
2495 40 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
redcony 2006-09-02
  • 打赏
  • 举报
回复
我要统计出在一个运行过程中,单个jar包中总共创建和消耗对象的大小
zhmt 2006-08-31
  • 打赏
  • 举报
回复
呵呵,要先明确你要做什么,才能知道那种方法对你有意义。
这个问题讨论过好多次了。
redcony 2006-08-31
  • 打赏
  • 举报
回复
没有高手再出现了吗?
qtyeee 2006-08-28
  • 打赏
  • 举报
回复
路过,支持
懒是一种态度 2006-08-28
  • 打赏
  • 举报
回复
路过,友情up...
redcony 2006-08-28
  • 打赏
  • 举报
回复
还有没有好点的解决方法啊
feifeiyaqi2 2006-08-25
  • 打赏
  • 举报
回复
*****************************************************
大家了注意,这家公司是外地人在北京开的,公司的老板注册的工商执照是借朋友身份证办的,注册资金不到5万,而上面他说的全是骗人的。老板扣工人的工资的人很多,完了还会找人打你,特没劲。
******************************************************************
**********************************




北京易佳贝营销顾问有限公司
公司行业: IT服务/多领域经营 互联网/电子商务

公司类型: 民营

公司规模: 20-99人





企业简介:

北京易佳贝营销顾问有限公司,以营销咨询、培训、项目推广、网络建设及推广为主营业务。其中,营销咨询、培训业务以服务于国内大中型企业300多家,举办大型营销主题培训班180余期,接受委托或自行代理的全国项目已实现销售总额人民币3亿元。

易捷中国网是由香港扬华国际集团、北京易佳贝营销顾问有限公司共同投资1.1亿元人民币兴建的专业型商业项目网站。公司本着"高位起步、高标建设、高速发展"的策略,致力于打造全球最大的项目投资网络平台。

易捷中国网目前正在实施"007品牌工程",拟建100家地级、1000家县级分站,以"信息快速交换、传播快速有效、价值快速回报"为宗旨和目标,为广大客户提供在线三快的商务服务。追逐梦想、勇于创新、敢为人先、缔造卓越是我们的集体素描;诚信、拼搏、团结、协作是我们的行为语言;我们提倡公平、公正、严格的工作氛围,信奉付出与收获对等的工作原则;我们秉承以人为本的宗旨,以完善的现代企业经营制度吸引国内外优秀的技术、营销与管理人才。热忱欢迎怀抱梦想、德才兼备的各方才俊加入易捷中国,共创美好未来!

北京易佳贝武汉分公司成立于2006年8月1日,是公司发展战略中的重要一部分。
oursky813 2006-08-25
  • 打赏
  • 举报
回复
呵!是的顶!
lcllcl987 2006-08-25
  • 打赏
  • 举报
回复
hbwhwang(catmiw的ID已经停用,现在用这),强人!
在武汉?
ErikChen1985 2006-08-25
  • 打赏
  • 举报
回复
请问,得到这个值有什么用???????????????????????
eddie404956 2006-08-24
  • 打赏
  • 举报
回复
terry_yip(搞了几年开发,现在才来恶补基础,请别见笑!)
你的还要减去那个LONG数据的空间,还有OBJ的Reference
cyeahpro 2006-08-24
  • 打赏
  • 举报
回复
hbwhwang(catmiw的ID已经停用,现在用这个)说的不错.

hbwhwang 2006-08-24
  • 打赏
  • 举报
回复
空对象占8个字节
有数据成员的话,你按byte/boolean=1,char/short=2,int/float=4,long/double=8,对象引用=4累加,然后对齐到8个字节的倍数。
比如
class A{
int a;
char b;
}
占 8(基本)+8(int 4+char 2=6,对齐到8)= 16个字节
再比如:
class B{
Integer a;
long b;
byte c;
}
占 8(基本)+16(对象引用4+long8+byte1=13,对齐到16)= 32个字节

===============
如果你是从别的类继承的,父类的也要算上。

ldjava 2006-08-24
  • 打赏
  • 举报
回复
路上说的很对
happy83 2006-08-24
  • 打赏
  • 举报
回复
好!
千里冰封820 2006-08-24
  • 打赏
  • 举报
回复
没这么简单的
如果你的对象是继承的话还要算上父类的空间
并且包括了别的以象的话,也要算上别的对象
这样一级一级算下去.直到没有为止
asdex1999 2006-08-24
  • 打赏
  • 举报
回复
空对象占8个字节
有数据成员的话,你按byte/boolean=1,char/short=2,int/float=4,long/double=8,对象引用=4累加,然后对齐到8个字节的倍数。
比如
class A{
int a;
char b;
}
占 8(基本)+8(int 4+char 2=6,对齐到8)= 16个字节
再比如:
class B{
Integer a;
long b;
byte c;
}
占 8(基本)+16(对象引用4+long8+byte1=13,对齐到16)= 32个字节
lxbsweet 2006-08-24
  • 打赏
  • 举报
回复
hbwhwang(catmiw的ID已经停用,现在用这个) 简洁 ,实用
尹崇 2006-08-24
  • 打赏
  • 举报
回复
System.out.println(Runtime.getRuntime().totalMemory() / 1024 + " - " +
Runtime.getRuntime().freeMemory() /1024 );
JAVA_WEB 2006-08-24
  • 打赏
  • 举报
回复
用 Runtime.getRuntime().totalMemory() 是不行的,太不准了!一个对象才多大呀?这么算?
对象序列化也不精确吧?如果有trasiant的属性怎么办?
还是像(hbwhwang(catmiw的ID已经停用,现在用这个) )这样算吧!
加载更多回复(19)

62,634

社区成员

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

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