内部类初始化

来源:互联网 发布:贪心算法会场安排问题 编辑:程序博客网 时间:2024/06/10 05:45

单例模式中常用的一种饿汉模式实现是用内部类实现的,但是并不理解为什么是饿汉,不是懒汉呢,于是写了下面的测试程序,得到结果:并不是InnerClass外部类初始化,其内部类JobSchedulerHolder就初始化。

public class InnerClass{    private static class JobSchedulerHolder{    private static InnerClass instance = new InnerClass();        static{            System.out.println("内部类初始化");        }    }    private InnerClass(){    }    static{        System.out.println("外部类初始化");    }    public static InnerClass getInstance(){        return JobSchedulerHolder.instance;    }    public static void main(String[] args){        InnerClass i = new InnerClass();        System.out.println("------------");//      InnerClass.getInstance();    }}

执行结果

外部类初始化------------
public class InnerClass{    private static class JobSchedulerHolder{    private static InnerClass instance = new InnerClass();        static{            System.out.println("内部类初始化");        }    }    private InnerClass(){    }    static{        System.out.println("外部类初始化");    }    public static InnerClass getInstance(){        return JobSchedulerHolder.instance;    }    public static void main(String[] args){//      InnerClass i = new InnerClass();//      System.out.println("------------");        InnerClass.getInstance();    }}

执行结果

外部类初始化内部类初始化
0 0
原创粉丝点击