您可以使用 java.lang.instrumentation
包。
它有一个方法,可用于获取对象大小的实现特定近似值,以及与对象关联的开销。
谢尔盖链接的答案有一个很好的例子,我会在这里重新发布,但你应该已经从他的评论中看到了:
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 o) {
return instrumentation.getObjectSize(o);
}
}
用:getObjectSize
public class C {
private int x;
private int y;
public static void main(String [] args) {
System.out.println(ObjectSizeFetcher.getObjectSize(new C()));
}
}
源