手写一个单例(面试题目)

Singleton模式主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。 一般Singleton模式通常有几种形式:

第一种模式:定义一个类,它的构造函数为private的,它有一个static的private的该类变量,在类初始化时实例话,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。只要初始化就创建了一个静态的实例(饱汉)

public class Singleton{

    //注意这是private 只供内部调用
    private Singleton(){}
    //在自己内部定义自己一个实例
    private static final Singleton singleton=new Singleton();
    //公有方法访问得到实例  Singleton singleton=Singleton.getInstance();即可的得到实例
    public static Singleton getInstance(){
        return singleton;
    }

}

第二种模式:

public class Singleton{

    private static Singleton singleton = null;
    //使用时才生成实例
    public static synchronized Singleton getInstance() {
        if (null == singleton) {
            singleton = new Singleton();
        }
        return singleton;
    }
}

第三种模式:枚举

public enum Singleton{
    ONE;
}

你可能感兴趣的:(手写一个单例(面试题目))