静态内部类,看输出结果,前面两次不同,后面两次相同
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实例中唯一的。