代码如下:class TestObject {
private int i;

}public class JVM {
     public static void main(String[] args) throws Exception {
      for (int i = 0; true; i++) {
      TestObject to = new TestObject();
      }
      
}
}JVM 参数:
-Xmx100m 
-Xms100m
-XX:+PrintGC
-XX:+PrintGCDetails
为什么执行后不会打印gc信息?如果我把TestObject 改成class TestObject {
private byte [] ii;
public TestObject (){
            ii =new byte[1];
       }}
则可以打印gc信息

解决方案 »

  1.   

    这个我反编译看了,没看太明白,我是感觉jvm给做了优化处理
      

  2.   

    好像是我想当然了, 看起来不是那样子..public class Tttt {    public static void main(String args[]){
            for (int i=0 ; i<100;i++) {
                TestObject obj = new TestObject();
            }        for (int i=0 ; i<100;i++) {
                TestObject1 obj = new TestObject1();
            }
        }
    }D:\workspace\testspace\dist>javap tttt
    Compiled from "Tttt.java"
    public class Tttt extends java.lang.Object{
        public Tttt();
        public static void main(java.lang.String[]);
    }