• 一个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


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

  • 相关阅读:
    猴子选大王(约瑟夫环)
    centos 安装thrift
    KMP字符串匹配算法
    会话技术整理
    PHP数组整理版
    PHP基础知识6【系统内置函数--数组】
    PHP基础知识5【系统内置函数--字符串】
    PHP基础知识笔记4
    PHP基础知识笔记3
    PHP基础知识笔记2
  • 原文地址:https://www.cnblogs.com/sea520/p/13186287.html
Copyright © 2020-2023  润新知