日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java int integer内存_java中一个integer对象的内存占用是多少?可以通过java方法输出吗?...

發布時間:2023/12/3 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java int integer内存_java中一个integer对象的内存占用是多少?可以通过java方法输出吗?... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天翻記錄看到了自己15年3月份提的問題,現在已經18年6月份了;

去年線上項目出現內存瓶頸,原因是緩存的玩家角色數據過多,在長時間不停服的情況下,導致數據越來越膨脹,之前沒有清除無用緩存的機制,并且緩存數目上限過高;

期間組里進行了一次內存大小計算學習;

各個Java對象自身占用的堆大小都可以通過對象的數據結構計算得出;

且最終的計算結果與jmap查看的單個對象大小一致;通過jmap查看內存對象,每個Long和Integer占用內存24字節,這24字節分別都是什么東西??www.zhihu.com

--------------------------

通過內存計算對Java對象的內存分布可以有個更加清晰的認識;

1.比如一個對象當中如果有數組對象,比如java.util.ArrayList對象,有個數組對象private transient Object[] elementData對象,那么在64位系統未開啟指針壓縮的情況下至少有一個8字節的指針引用消耗,以及數組對象本身的消耗,比如對象大小初始化為10,數組本身的對象消耗將為8字節的makrword + 8字節的class指針 + 8字節的數組長度 + 10 * 8 字節的數組引用指針消耗;

那么你個空的為10大小的數組消耗為8 + 8 + 8 + 10 * 8 = 104字節 正好對齊了;

再加上本身ArrayList對象的對象頭 (8字節MarkWord+ 8字節的class指針)+ 4字節的size成員變量 + 8字節的數組對象指針消耗 + 4字節的modCount成員變量 = 32字節

那么一共將是 32 + 104 = 140字節

------------------------

甚至我們在計算一個內部類的大小的時候會發現內部類除了那些顯示的內存占用外,還將保存一個父類的引用,因為會多出8字節來。

總結

以上是生活随笔為你收集整理的java int integer内存_java中一个integer对象的内存占用是多少?可以通过java方法输出吗?...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。