7-设计模式-单例模式

单例模式

什么是单例模式?

 单例保证一个对象JVM中只能有一个实例,常见单例 懒汉式、饿汉式安全

 什么是懒汉式,就是须要的才会去实例化,线程不安全。spa

 什么是饿汉式,就是当class文件被加载的时候,初始化,天生线程安全。线程

懒汉式代码code

class SingletonTest {
	public static void main(String[] args) {
		Singleton sl1 = Singleton.getSingleton();
		Singleton sl2 = Singleton.getSingleton();
		System.out.println(sl1 == sl2);
	}
}

public class Singleton {
	// 当须要的才会被实例化
	private static Singleton singleton;
	private Singleton() {
	}
	static public Singleton getSingleton2() {
//双重检验锁 
		if (singleton == null) { // 第一步检验锁
			synchronized (Singleton.class) {  // 第二步检验锁
				if (singleton == null) {
					singleton = new Singleton();
				}

			}
		}

		return singleton;
	}
}

饿汉式代码对象

class SingletonTest1 {
	public static void main(String[] args) {
		Singleton1 sl1 = Singleton1.getSingleton();
		Singleton1 sl2 = Singleton1.getSingleton();
		System.out.println((sl1 == sl2)+"-");
	}
}
public class Singleton1 {
	//当class 文件被加载初始化
	private static Singleton1 singleton = new Singleton1();
	private Singleton1() {
	}
	public static Singleton1 getSingleton() {
		return singleton;
	}

}
相关文章
相关标签/搜索