java 打印对象大小_如何获取一个Java对象所占内存大小

新建一个maven工程

我们先在IDEA中新建一个名为ObjectSizeFetcherAgent的maven工程,如下图:

java 打印对象大小_如何获取一个Java对象所占内存大小_第1张图片

在maven项目中的pom.xml中新增一个打jar包的插件,如下:

org.apache.maven.plugins

maven-compiler-plugin

3.1

1.8

1.8

/src/test/**

utf-8

org.apache.maven.plugins

maven-jar-plugin

3.0.2

${project.build.outputDirectory}/META-INF/MANIFEST.MF

在项目的resources中新建一个名为META-INF的目录,在这个目录下新建一个名为MANIFEST.MF的属性文件,如下图:

java 打印对象大小_如何获取一个Java对象所占内存大小_第2张图片

项目的JDK设置为1.8,如下图:

java 打印对象大小_如何获取一个Java对象所占内存大小_第3张图片

java 打印对象大小_如何获取一个Java对象所占内存大小_第4张图片

java 打印对象大小_如何获取一个Java对象所占内存大小_第5张图片

编写获取Java对象内存的工具方法

import java.lang.instrument.Instrumentation;

import java.lang.reflect.Array;

import java.lang.reflect.Field;

import java.lang.reflect.Modifier;

import java.util.ArrayDeque;

import java.util.Deque;

import java.util.HashSet;

import java.util.Set;

public class ObjectSizeFetcher {

// instrum

你可能感兴趣的:(java,打印对象大小)