社区
Java SE
帖子详情
在Java中如何知道一个对象的大小,也就是占用多少内存???
Alex_20
2003-08-19 12:49:42
在Java中如何知道一个对象的大小,也就是占用多少内存???
...全文
954
13
打赏
收藏
在Java中如何知道一个对象的大小,也就是占用多少内存???
在Java中如何知道一个对象的大小,也就是占用多少内存???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wangwd
2003-08-19
打赏
举报
回复
在Java中不需要考虑内存管理问题,它是自动进行的
xjffj
2003-08-19
打赏
举报
回复
首先不同虚拟机的对象大小不同。以sun的jvm为例
每个对象8个字节,field的大小参考sun规范。每个对象的总大小必须是8的倍数。所以一个Integer的大小是8+4=12个字节,但由于是8的倍数,因此实际是16个字节。
一个字符串"aaa"的大小是8+4(hascode)+4(char数组的引用)+char数组对象大小
char数组对象大小是8+4+2*3=24
因此一共是40个字节。当然如果String中还有其他Field则还要加上。
tenny
2003-08-19
打赏
举报
回复
搞个什么例子来探讨一下.光讲理论不怎么好讲呀/
hogcheng
2003-08-19
打赏
举报
回复
关注.........
Alex_20
2003-08-19
打赏
举报
回复
我要缓冲数据,数据的行数和列数都是不确定的,而且里面全是字符串,我希望不缓冲对象尺寸大于某个整数的那些数据,该怎么办???
dingzhaofeng
2003-08-19
打赏
举报
回复
路过...
shine333
2003-08-19
打赏
举报
回复
什么东西的缓冲池阿,
我感觉好像只要考虑对象个数,而不要考虑其占内存大小的
hesi726
2003-08-19
打赏
举报
回复
知道你是这个目的啊!
所以对于 对象来说,
例如,下面的对象吧!
public class Aa
{
int i;
String abc = " abc ";
Object aa = null;
void setI(int i)
{ this.i=i; }
int getSize()
{
return 4+abc.length()+4;
// 第一个 4 表示 整数所占的字节
// 第二个 4 表示 aa 所占的字节!(指针占 4个字节)
}
}
//就是这样啊!
//你不能认为 getSize(),setI() 这些函数也会占内存啊!---虽然确实会占!
Alex_20
2003-08-19
打赏
举报
回复
我要设计一个缓冲池,池总要有大小吧,不知道对象占用了多少内存,怎么知道池是否满了???
xdcy2001
2003-08-19
打赏
举报
回复
java中的对象会自动回收,不需要象C那样要用析构函数,所以不需要知道它占多大内存。
conning333
2003-08-19
打赏
举报
回复
哦?支持
zhang21cnboy
2003-08-19
打赏
举报
回复
hoho,欧努力了3天,刚实现!:)等我发出来大家看!
hesi726
2003-08-19
打赏
举报
回复
没有办法!
只能自己实现方法了!
基本上,
函数是不占内存的!---多个对象都只有一个函数!
其他嘛, int,string,Object 等都可以得到所占字节数啊!
看看 jive 论坛(忘记了是不是这个了),里面有实现的!
java
一个
对象
占用
多少字节?
java
一个
对象
占用
多少字节?_zzx410527的专栏-CSDN博客_
java
对象
头占几个字节 最近在读《深入理解
Java
虚拟机》,对
Java
对象
的
内存
布局有了进一步的认识,于是脑子里自然而然就有
一个
很普通的问题,就是
一个
Java
对象
到底
占用
多大
内存
? 想弄清楚上面的问题,先补充一下基础知识。 1、
JAVA
对象
布局 在 HotSpot虚拟机
中
,
对象
在
内存
中
的存储的布局可以分为三块区域:
对象
头(Header),实例数据(Instance Data)和对齐填充(Padding)
java
性能小知识:
一个
java
对象
占用
多少
内存
?
目录
一个
Java
对象
到底有多大? 节约
内存
原则 在编写
Java
代码时,我们很少会关注
一个
Java
对象
到底
占用
多少
内存
,这就可能导致大量
内存
在无形
中
被浪费掉了。
一个
Java
对象
到底有多大? 想要精确计算
一个
Java
对象
占用
的
内存
,我们首先要了解
Java
对象
的结构表示。
一个
Java
对象
在Heap的表示,可以分为三部分: Object Header Class Pointer Fields 1.Object Header 头信息(Objec...
如何查看
Java
对象
的
内存
占用
大小
本文介绍了两种方法来查看
Java
对象
的
内存
占用
大小
,分别使用了Instrumentation类和
Java
提供的工具类。接着,我们通过计算
对象
所
占用
的
内存
前后的堆
内存
使用量之差,即可得到
对象
的
内存
占用
大小
。需要注意的是,由于
Java
的垃圾回收机制的存在,
对象
的
内存
占用
大小
可能会受到垃圾回收的影响。然后,在您的代码
中
调用ObjectSizeFetcher.getObjectSize方法,传入要检测
内存
大小
的
对象
,即可获取其
内存
占用
大小
。本文将介绍几种方法,可用于查看
Java
对象
的
内存
占用
大小
。
java
对象
内存
到底
占用
多少
一个
Java
对象
到底
占用
多大
内存
Java
对象
的
内存
布局:
对象
头(Header),实例数据(Instance Data)和对齐填充(Padding)
对象
占用
的
内存
大小
还受到VM参数是否开启指针压缩UseCompressedOops的影响
内存
大小
:(
对象
头 + 实例数据 + 对齐补充padding) % 8等于0 且 0 <= padding < 8
解析
一个
Java
对象
占用
多少
内存
空间
说明: alignment, 对齐, 比如8字节的数据类型long, 在
内存
中
的起始地址必须是8的整数倍。 padding, 补齐; 在
对象
所占据空间的末尾,如果有空白, 需要使用padding来补齐, 因为下
一个
对象
的起始位置必须是4/8字节(32bit/64bit)的整数倍(这又是一种对齐)。 问题描述
一个
对象
具有100个属性, 与100个
对象
每个具有1个属性, 哪个
占用
的
内存
空间更大...
Java SE
62,614
社区成员
307,326
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章