[英]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.