参考: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时静态字段nullObjectSizeFetcher.getObjectSize(x)

您应该在调用方法ObjectSizeFetcher.premain(String args, Instrumentation inst)之前,并使用非null的inst参数。

09-04 12:49