静态内部类,为什么每次实例化是不同的对象

静态内部类,看输出结果,前面两次不同,后面两次相同

public  class Test01 {

    static final class InnerTest{
        static final InnerTest in = new InnerTest();
    }

    public static void main(String[] args) {
        InnerTest iin1 = new Test01.InnerTest();
        System.out.println(iin1 );
        InnerTest iin2 = new Test01.InnerTest();
        System.out.println(iin2 );

        System.out.println(iin1.in);
        System.out.println(iin2.in);
    }
}

输出结果为
com.lvbu.Test01$InnerTest@45ee12a7
com.lvbu.Test01$InnerTest@330bedb4
com.lvbu.Test01$InnerTest@2503dbd3
com.lvbu.Test01$InnerTest@2503dbd3

对于每次每个new Test01来说,都要创建一个新的innerTest
它是静态的,但是因为Test01有很多,所以不是全局唯一的,而是每个Test01实例中唯一的。