JAVA设计模式之单例模式
单例模式:
就是整个程序有且仅有一个对象,本类负责创将自己的对象,同时确保只有一个对象被创建。核心结构中只包含一个被称为单例的特殊类。
具体实现:
1.类构造器私有化,使用private修饰,外部不能访问。
2.持有自己类型的属性。使用private static 修饰。
3.定义一个静态方法,用于返回唯一实例化对象。
懒汉式模式:
特点:实现起来容易,当调用静态方法时创建对象,不会造成占用内存的情况,但是多线程并发不安全,单线程无影响
public class Singleton { private static Singleton s=null; private Singleton (){} public static Singleton getInstance() { if (s == null) { s = new Singleton(); } return s; } }
饿汉式模式:
特点:线程安全,但是一开始就初始化,占用内存,会造成资源的浪费。
public class Singleton { private static Singleton s = new Singleton(); private Singleton (){} public static Singleton getInstance() { return s; } }
双重锁模式:(使用双检查锁机制)
特点:线程安全,延迟初始化,单例模式的最佳实现方式。效率高,线程安全,多线程操作原子性,高性能。
public class Singleton { private static Singleton s=null; private Singleton (){} public static Singleton getSingleton() { if (s== null) { synchronized (Singleton.class) { //在给当前线程加锁后,例行检查 s 是否被实例化
if (s== null) {
s= new Singleton();
}
}
}
return s; }
}

浙公网安备 33010602011771号