对象内存占用计算
2021-02-09 17:05:29 1 举报
aa
作者其他创作
大纲/内容
heard16
name(String)8 + 引用的实际大小
sallary(double)8
heard8 + 8 + 4(4:length)
hash(int)4
age(int)4
heard16(8+8)
padding最后计算
char2 * 8
serialVersionUid(long)8
tag(char)2
married(boolean)1
引用类型需往下计算实际大小
1: 除了对象整体需要按8字节对齐外,每个成员变量都尽量使本身的大小在内存中尽量对齐。比如 int 按 4 位对齐,long 按 8 位对齐。 2:类属性按照如下优先级进行排列:长整型和双精度类型;整型和浮点型;字符和短整型;字节类型和布尔类型,最后是引用类型。这些属性都按照各自的单位对齐。 3:优先按照规则一和二处理父类中的成员,接着才是子类的成员。 4:当父类中最后一个成员和子类第一个成员的间隔如果不够4个字节的话,就必须扩展到4个字节的基本单位。 5:如果子类第一个成员是一个双精度或者长整型,并且父类并没有用完8个字节,JVM会破坏规则2,按照整形(int),短整型(short),字节型(byte),引用类型(reference)的顺序,向未填满的空间填充。
存储结构 64bits
char[]8 + 引用的实际大小
birthday(long)8
0 条评论
下一页