码迷,mamicode.com
首页 > 编程语言 > 详细

java对象占用内存大小计算方式

时间:2014-07-25 11:26:41      阅读:261      评论:0      收藏:0      [点我收藏+]

标签:style   blog   java   2014   for   re   c   html   

案例一:

User

public class User {
	
	
}

UserSizeTest

public class UserSizeTest {
	static final Runtime runTime=Runtime.getRuntime();
	public static void main(String[] args) {
		final int count = 100000;
		User[] us=new User[count];
		
		long heap1 = 0;
		
		for (int i = -1; i < count; ++i) {
			User user=null ;
			user=new User();
			if (i >= 0)
				us[i] = user;
			else {
				user = null; 
				heap1 = getUsedMemory(); 
			}
		}
		long heap2 = getUsedMemory();
		System.out.println("user大小:"+((float)heap2-heap1)/count+" bytes");
		for (int i = 0; i < count; i++) {
			us[i]=null;
		}
		runTime.gc();
	}
	static long getUsedMemory(){
		return runTime.totalMemory()-runTime.freeMemory();
	}
}

结果:

user大小:7.62576 bytes


说明:

空对象占用8个字节




案例二:

public class User {
	boolean flag;
	long id;
	Date date ;
	
}

运行测试类结果;

user大小:23.50192 bytes

说明:

boolean 1+ long 8 + 引用类型 Date 4 =13 凑齐8的倍数 =16
	
16+空对象 8 =24


java对象占用内存大小计算方式,布布扣,bubuko.com

java对象占用内存大小计算方式

标签:style   blog   java   2014   for   re   c   html   

原文地址:http://blog.csdn.net/wobendiankun/article/details/38096407

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!