尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
java对象所占内存大小输出
如何计算java对象所占内存大小可以使用下述三种方法。使用jdk8自带API使用下面语句打印对象所占内存大小需要保证jdk版本是jdk8。System.out.println(ObjectSizeCalculator.getObjectSize(3L));借助org.apache.lucene工具类引入maven坐标dependency groupIdorg.apache.lucene/groupId artifactIdlucene-core/artifactId version4.0.0/version /dependency dependency groupIdorg.apache.commons/groupId artifactIdcommons-lang3/artifactId version3.12.0/version /dependency// 使用jdk8自带API System.out.println(List内存占用大小 ObjectSizeCalculator.getObjectSize(map)字节); System.out.println(List占用的内存大小为 new BigDecimal(ObjectSizeCalculator.getObjectSize(map)).divide(new BigDecimal(1024*1024)) MB);借助jol工具类引入maven坐标dependency groupIdorg.openjdk.jol/groupId artifactIdjol-core/artifactId version0.9/version /dependencySystem.out.println(ClassLayout.parseInstance(map).toPrintable());不过这种当对象中内嵌其他对象时只能计算ClassLayout方法中这个object对象所占内存的大小。完整代码如下import lombok.Data; import java.io.Serializable; /** * author Evan Walker * version 1.0 * desc * date 2024/02/20 09:38:43 */ Data public class ClassEntity implements Serializable { private String acctId; private String classTag1; private String classTag2; private String classTag3; }import jdk.nashorn.internal.ir.debug.ObjectSizeCalculator; import org.apache.lucene.util.RamUsageEstimator; import org.openjdk.jol.info.ClassLayout; import java.math.BigDecimal; import java.util.HashMap; import java.util.Map; /** * author Evan Walker * version 1.0 * desc * date 2024/02/20 09:37:48 */ public class Test { public static void main(String[] args) throws Exception{ MapString,ClassEntity map new HashMap(); for(int i 0;i1000000;i){ ClassEntity entity new ClassEntity(); entity.setClassTag1(A); entity.setClassTag2(ibbb); entity.setClassTag3(iccc); map.put(i12345678,entity); } // 借助org.apache.lucene工具类 System.out.println(List内存占用大小 RamUsageEstimator.humanSizeOf(map)); // 使用jdk8自带API System.out.println(List内存占用大小 ObjectSizeCalculator.getObjectSize(map)字节); System.out.println(List占用的内存大小为 new BigDecimal(ObjectSizeCalculator.getObjectSize(map)).divide(new BigDecimal(1024*1024)) MB); // 借助jol工具类 System.out.println(ClassLayout.parseInstance(map).toPrintable()); } }上述便是三种打印java 对象占用内存的方法。
RELATED

相关推荐

单臂路由-基于接口DHCP+VLAN (实验)

单臂路由-基于接口DHCP+VLAN (实验)

实验对象:一台路由器、一台交换机、四台PC机实验环境:eNSP单臂路由实验命令: interface Ethernet0/0/0.10dot1q termination vid 10(该接口属于vlan10)ip add 192.168.10.1 24 arp broadcast enable(开启ar…

📅 2026/10/17 13:44:40
Arduino、ESP32驱动传感器实战:专栏总述

Arduino、ESP32驱动传感器实战:专栏总述

目录 1、摄像头 2、声音传感器 3、闪电传感器 4、距离传感器 5、重量传感器 6、压力传感器 7、温湿度传感器 8、超声波传感器 9、惯性测量传感器 10、颜色传感器 11、光照传感器 12、环境传感器 13、气体传感器 本专栏基于Arduino、ESP32驱动各类传感器和摄像头,覆盖…

📅 2026/10/20 21:10:52
6个Python库让你写出同步代码,跑出异步速度

6个Python库让你写出同步代码,跑出异步速度

6个库让你写出同步代码,跑出异步速度摘要:性能优化的新思路很长时间以来, 在我们谈及性能之际, 有一个无法避开的话题便是多线程。面对数据处理、网络爬取或者I/O密集型任务所存在的性能瓶颈, 好多开发者会下意识地寻求多线程方案, 指望借助并发去加快脚…

📅 2026/10/5 13:27:25
MORE NEWS

更多资讯

📰

工地太忙根本没时间复习考试?电工证高压证试题保姆级教程来帮你

工地太忙根本没时间复习考试?电工证高压证试题保姆级教程来帮你 工地太忙根本没时间复习考试?你不是一个人。很多在一线施工的电工师傅,工作强度大,时间碎片化,想考个高压电工证,却不知道从哪儿下手,更别说刷题复习了。别担心,这套…

📰

特种作业操作证样卡官方回应怎么查?证书过期了不知道怎么复审延期

特种作业操作证样卡官方回应怎么查?证书过期了不知道怎么复审延期 证书过期了不知道怎么复审延期,你不是一个人。很多人在工作中遇到这种情况,特别是像我这样在信阳浉河区带劳务班组的,经常有工人问: 特种作业操作证样卡官方回应怎么查?…

📰

无锡架子工特种作业证千万别踩坑:证书过期了不知道怎么复审延期

无锡架子工特种作业证千万别踩坑:证书过期了不知道怎么复审延期 你是不是最近突然发现,自己的无锡架子工特种作业证已经到期了?或者发现单位不再认可你持有的证书,甚至被要求重新考试?这种情况下,很多人都会慌了神,不知道该怎么处理, 千万别踩坑…

📰

新泰电工证培训学校官方报名入口如何解决外省证书转接难题

新泰电工证培训学校官方报名入口如何解决外省证书转接难题 之前考的证在外省能不能转过来?这几乎是所有打算在新泰开展特种作业的电工从业者最关心的问题。如果你手中持有的电工证是外省发放的,那么你很可能正在经历一场“证书转接”的焦虑,而新泰电工证培…

📰

佛山高压电工证报名如何避坑?含金量高的证书就在这里

佛山高压电工证报名如何避坑?含金量高的证书就在这里 不知道去哪报名怕被中介坑,佛山高压电工证报名真的让人头疼。尤其是你还在为哪一家靠谱的机构犹豫不决时,那些承诺“包过”“包办”的中介已经开始打感情牌了。别急,今天就从一个干了十年特种作业培训…

📰

淄博考电工证到哪里考千万别踩坑,新手必看的报名避坑指南

淄博考电工证到哪里考千万别踩坑,新手必看的报名避坑指南 你是不是也像我一样,第一次听说要考电工证,心里一万个问号?不知道去哪报名怕被中介坑,怕花了钱考了证又没用,怕被坑了还不能上岗?别急,今天就来给你说清楚, 淄博考电工证到哪里考…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬