首页 > 代码库 > java对象占用内存大小计算方式
java对象占用内存大小计算方式
案例一:
User
public class User { }
UserSizeTestpublic 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的倍数 =1616+空对象 8 =24
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。