zoukankan      html  css  js  c++  java
  • 一个java类占用的内存

    总共:96byte
    1KB = 1024BYTE
    1024/96=10.6
    1MB = 1024KB = 可以缓存10240个数据.

    ===============================================================================================

    public class LimitInfoByKeySnBO {

    //1.对象头 8 byte
    //2.retCode 4byte
    //3.retMsg 空,8(对象头)+4(引用)+4(对齐)byte
    //4.residualValidityPeriod,8+8,16字节
    //5.endTime,yyyy-MM-dd HH:mm:ss,8+40字节
    总共:96byte
    1KB = 1024BYTE
    1024/96=10
    1MB = 1024KB = 可以缓存10240个数据.

    private int retCode;
    private String retMsg;
    private Integer residualValidityPeriod;
    private String endTime;
    }

    ===============================================================================================

    计算一个java类占用的内存.
    A:对象头
    内存中,每个对象占用的总空间不仅包含对象内声明的变量所需要的空间,还包括一些额外信息,比如:对象头 和 填充物。“对象头”的作用是用来记录一个对象的实例名字、ID 和 实例状态(例如,当前实例是否“可到达”,或者当前锁的状态等等)。
    在当前的JVM版本中(Hotspot),“对象头”占用的字节数如下:

    一个普通对象,占用8 bytes
    数组,占用 12 bytes,包含普通对象的 8 bytes + 4 bytes(数组长度)
    B:基本类型

    boolean、byte 占用 1 byte,char、short 占用 2 bytes,int、float 占用 4 bytes,long、double 占用 8 bytes
    C:引用类型
    每个引用类型占用 4 bytes
    D:填充物
    在Hotspot中,每个对象占用的总空间是以8的倍数计算的,对象占用总空间(对象头+声明变量)不足8的倍数时候,自动补齐。而,这些被填充的空间,我们可以称它为“填充物”。我们看下具体实例:

    byte:1个字节,8位,-128~127 最大存储数据量 255

    short:2个字节,16位,-32768~32767 最大存储数据量 65535

    char:2个字节,16位,存储Unicode编码,用‘’

    int:4个字节,32位,负的2的31次方~2的31次方-1 最大存储数据量 2的31次方-1

    float:4个字节,32位

    double:8个字节,64位

    long:8个字节,64位,负的2的64次方~2的64次方-1 最大存储数据量 2的64次方-1


    ————————————————————————————————————————————————————————————————

  • 相关阅读:
    屏蔽和开启”关机“功能
    资源管理器的自动完成功能
    js DOM(二)获取元素的方式、innerText、textContent、innerHTML、自定义属性
    js DOM(一)注册事件、修改标签属性和样式
    js ECMAscript(二)作用域,预解析,创建对象,内置对象
    旧create-react-app项目集成jest+enzyme
    create-react-app项目集成jest+enzyme测试react组件
    现代化前端测试
    puppeteer入门
    windows安装解压版redis
  • 原文地址:https://www.cnblogs.com/sea520/p/13186287.html
Copyright © 2011-2022 走看看