[英]Size of a 'long' in memory - Java
我仍在试图弄清楚为什么 Java 中的long
和double
在内存中消耗12 bytes
而不是8 bytes
肯定在某处有错误的假设; 请指导我..
我用两种方法分析它,
以下是我的逻辑/假设/来源信息,
12 bytes = [CLASS INFO OF 4 BYTES] + [FLAGS INFO OF 4 BYTES] + [LOCK INFO OF 4 BYTES]
元数据12 bytes = [CLASS INFO OF 4 BYTES] + [FLAGS INFO OF 4 BYTES] + [LOCK INFO OF 4 BYTES]
Total Memory - Meta Data
12 bytes => 24 bytes (Total Memory) - 12 bytes (Meta Data)
[ ANSWER ] 4个字节的差异是由于JVM应用的填充。 谢谢安迪·特纳...
你可以检查double的大小:
double numDouble=2;
long size=(long)(numDouble*Double.SIZE) / Byte.SIZE;
System.out.println(size);
输出:16
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.