JAVA(16)-jvm-class-顺序不同,结果不同

1.类到加载与初始化

2.根据上图,以下3种写法由于顺序到原因会出现3种不同到结果。
  2.1

public class ClassLoader {
    public static void main(String[] args) {
        System.out.println(T.count);
    }
    class T
    {
        public static int count=2;//0
        public static T t=new T();//null
        private T()
        {
            count++;
        }
    }
}

输出为:2
2.2

 public static void main(String[] args) {
        System.out.println(T.count);
    }
    class T
    {
        public static T t=new T();
        public static int count=2;//
        private T()
        {
            count++;
        }
    }

输出为:3

2.3

public static void main(String[] args) {
       // System.out.println(T.count);
    }
    class T
    {
        public static T t=new T();
        public static int count=2;//
        private T()
        {
            count++;
            System.out.println(T.count);
        }
    }

输出为:1

猜你喜欢

转载自blog.csdn.net/aggie4628/article/details/107374476