在Java中如何知道一个对象的大小,也就是占用多少内存??? 在Java中不需要考虑内存管理问题,它是自动进行的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没有办法!只能自己实现方法了!基本上, 函数是不占内存的!---多个对象都只有一个函数! 其他嘛, int,string,Object 等都可以得到所占字节数啊!看看 jive 论坛(忘记了是不是这个了),里面有实现的! hoho,欧努力了3天,刚实现!:)等我发出来大家看! java中的对象会自动回收,不需要象C那样要用析构函数,所以不需要知道它占多大内存。 知道你是这个目的啊!所以对于 对象来说,例如,下面的对象吧! 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() 这些函数也会占内存啊!---虽然确实会占! 首先不同虚拟机的对象大小不同。以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则还要加上。 窗口程序代码问题 用java 开发一个服务端,最多能同时连接多少个socket Java键盘接收字符问题 哪位热心人帮忙java环境变量怎么配置? 求助~ 合并文本问题!!!!! getGraphics()与new Frame构造函数的问题 JAVA面试一般问什么问题? win2003下不安装jre能浏览java applet 吗?奇怪,我的没有安装但是可以浏览? always on top 技术讨论,请各位大虾不吝赐教!!1 各位大侠,帮小弟解答个问题 问一个很菜的问题 java初学者,求关于Son s = new Son()这句话的理解!
只能自己实现方法了!
基本上,
函数是不占内存的!---多个对象都只有一个函数!
其他嘛, int,string,Object 等都可以得到所占字节数啊!
看看 jive 论坛(忘记了是不是这个了),里面有实现的!
所以对于 对象来说,
例如,下面的对象吧!
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() 这些函数也会占内存啊!---虽然确实会占!
每个对象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则还要加上。