参考:Calculate size of Object in Java
我试图运行该程序并获取创建的对象的大小
//main
while(true){
Integer x=new Integer(50);
System.out.println("HashCode of this object="+x.hashCode()+"
, with Size of "+ObjectSizeFetcher.getObjectSize(x));
i++;
}
The output -- NullPointerException is thrown when getObjectSize() is invoked.
new Integer() -->
应该已经创建了一个新的包装对象。而是创建NPE。为什么呢
Java版本“ 1.6.0_65”
苹果OSX-10.9.1
-忽略语法错误
最佳答案
因为调用ObjectSizeFetcher.instrumentation
时静态字段null
是ObjectSizeFetcher.getObjectSize(x)
。
您应该在调用方法ObjectSizeFetcher.premain(String args, Instrumentation inst)
之前,并使用非null的inst
参数。