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

posted @ 2020-07-16 05:52  jasmineTang  阅读(68)  评论(0)    收藏  举报