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


    案例一:

    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


  • 相关阅读:
    [转] 蓝牙RSSI计算距离
    [转] 人工智能之机器学习路线图
    css3兼容在线处理
    a标签实现下载
    loading图标制作
    mongodb可视化工具
    title上面的图标怎么更改
    阿里云上传下载文件
    mongodb备份恢复
    RESTful
  • 原文地址:https://www.cnblogs.com/blfshiye/p/4293377.html
Copyright © 2020-2023  润新知