一.什么是单例模式
单例模式(Singleton Pattern)是 Java 的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
二.单例代码
懒汉
// 懒汉式单例类.在第一次调用的时候实例化自己
public class Singleton {
private Singleton(){};// 私有化构造方法,外界无法通过new创建此类的实例
private static Singleton instance=null;
//静态工厂方法 获得本类实例的唯一全局访问点
public static Singleton getInstance() {
if (instance == null) { // 不存在 new关键字创建实例
instance = new Singleton();
}
return instance;
}
}
饿汉
public class Singleton {
private Singleton() {}
private static Singleton single=new Singleton();
public static Singleton getInstance() {
return single;
}
}
双重检验锁
public class SingleTon {
private SingleTon(){};
private static volatile SingleTon singleTon=null;
public static SingleTon getInstance(){
//第一次校验
if(singleTon==null){
synchronized(SingleTon.class){
//第二次校验
if(singleTon==null){
singleTon=new SingleTon();
}
}
}
return singleTon;
}
静态内部类
public class Singleton {
private static class SingletonHolder {
private static final Singleton INSTANCE;
}
private Singleton (){}
public static final Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}