首页 > 系统相关 >2、计算Java对象所占内存的大小

2、计算Java对象所占内存的大小

时间:2022-10-26 22:44:51浏览次数:50  
标签:xh Java 对象 lucene userList 内存 apache org User

当一个对象有多个属性,需要计算整个对象的大小时,可以借助org.apache.lucene工具类
首先引入maven依赖

<dependency>
    <groupId>org.apache.lucene</groupId>
    <artifactId>lucene-core</artifactId>
    <version>4.0.0</version>
</dependency>
<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId>
    <version>3.12.0</version>
</dependency>

测试代码

public void test() {
    List<User> userList = new ArrayList<>();
    User xh = new User();
    xh.setName("xiaohong");
    xh.setAge(2);
    for (int i = 0; i < 1000; i++) {
        userList.add(xh);
    }
    System.out.println("value is:" + RamUsageEstimator.humanSizeOf(userList));
}
@Data
class User {
    private String name;
    private int age;
}

执行结果展示

value is:4.9 KB

 

标签:xh,Java,对象,lucene,userList,内存,apache,org,User
From: https://www.cnblogs.com/qingxuan0316/p/16830454.html

相关文章

  • javaweb画图
    最近都在忙期中考试,写博客的频率有点低了,以下是一些基本代码,是王建民老师说的要建立自己的资料库,我直接建的资料库。画图html<!--定义表格宽度行距宽度<tr>行<td>......
  • javascript编程单线程之异步模式Asynchronous
    异步模式Asynchronous不会等待这个任务结束才开始执行下一个任务,开启之后立即执行下一个任务,后续逻辑一般会通过回调函数的方式定义,异步模式对js非常重要,没有异步任务单线......
  • JavaScript 节流和防抖
    前言本文主要记录了JavaScript节流和防抖,节流和防抖本质上是优化执行高频率代码的一种手段。例如:浏览器的mousemove、resize、scroll等事件在触发时,会不断地调用绑定的......
  • javascript编程单线程之异步模式Asynchronous
    异步模式Asynchronous不会等待这个任务结束才开始执行下一个任务,开启之后立即执行下一个任务,后续逻辑一般会通过回调函数的方式定义,异步模式对js非常重要,没有异步任务单......
  • JavaScript works behind the scenes —— execution context(执行上下文)
    JavaScriptworksbehindthescenes——executioncontext(执行上下文)Whatisexecutioncontext?什么是执行上下文EnvironmentinwhichapieceofJavaScriptise......
  • Python进阶篇04-面向对象编程
    面向对象编程面向对象编程和面向过程编程的区别:类和实例类:抽象的、用于创建实例的基础模板,类里面可以定义这个类所拥有的基础的属性。实例:根据类而创建的具体的对象,实......
  • JAVA DAY1 LEARNING NOTE- Markdown-2022-10-26
    Markdown学习标题三级标题字体Helloworld!Helloworld!Helloworld!Helloworld!引用选择Java走向人生巅峰分割线图片超链接点击跳转到博客列表A......
  • java之final、static、匿名对象、内部类
    final关键字final的意思为最终,不可变。final是个修饰符,它可以用来修饰类,类的成员,以及局部变量。final修饰的类不可以被继承,但是可以继承其他类。点击查看代码classYy......
  • Linux 内存管理
    Linux操作系统采用了哪种方式来管理内存呢?在回答这个问题前,我们得先看看Intel处理器的发展历史。早期Intel的处理器从80286开始使用的是段式内存管理。但是很快发现,......
  • 内存总结
    为了在多进程环境下,使得进程之间的内存地址不受影响,相互隔离,于是操作系统就为每个进程独立分配一套虚拟地址空间,每个程序只关心自己的虚拟地址就可以,实际上大家的虚拟地址都......