java查看对象大小

Java中可以通过Instrumentation类来查看对象的大小。使用这个类需要先获取Instrumentation实例,可以通过在main方法中调用premain方法来获取该实例。

下面是一个示例代码,可以用来获取指定对象的大小:

import java.lang.instrument.Instrumentation;
public class ObjectSizeFetcher {
    private static Instrumentation instrumentation;
    public static void premain(String args, Instrumentation inst) {
        instrumentation = inst;
    public static long getObjectSize(Object obj) {
        if (instrumentation == null) {
            throw new IllegalStateException("Instrumentation is null");
        return instrumentation.getObjectSize(obj);

首先,需要在程序的启动参数中添加“-javaagent:XXX.jar”(XXX.jar代表包含了ObjectSizeFetcher类的jar包文件名),这样JVM启动时就会自动加载这个jar包,并调用其中的premain方法来获取Instrumentation实例。

接下来,只需要调用getObjectSize方法并传入一个对象即可获取该对象的大小(以字节为单位)。

需要注意的是,Instrumentation类只能在JDK1.6及以上版本中使用。同时,由于这种方式需要通过Java代理来加载类,所以对于一些特殊的场景,可能需要进行额外的设置才能正常使用。

  •