一、Java笔记之-懒汉模式与饿汉模式

一、饿汉模式,上来就先new对象,表示很饥渴:

package com.jerry.java;

public class Singleton1 {
	//1.先声明一个私有化构造器,防止直接创建该对象
	private Singleton1() {}
	
	//2.直接下把对象创建好,使用静态变量
	private  static Singleton1 instance1 = new Singleton1();
	
	//3.提供公共的静态方法,返回类的对象
	public   static Singleton1 getInstance1() {
		return instance1;
	}
}

  

二、懒汉模式,不着急用,我就不着急造对象:

package com.jerry.java;

//懒汉模式
public class Singleton2 {
	private  Singleton2() {}
	
	//先把对象放着
	private static Singleton2 singleton2  = null;
	
	// 有需要的时候,再去创建
	private static Singleton2 getInstance() {
		if (singleton2 == null) {
			return new Singleton2();
		}
		
		return singleton2;
	}
}

  

懒汉式与饿汉式的优缺点:

懒汉式,线程不安全,因为存在多线程资源竞争问题。

懒汉式,好处是延迟对象的创建。

饿汉式,线程安全,因为静态对象在编译时只会创建一次。

猜你喜欢

转载自www.cnblogs.com/vpersie2008/p/12722230.html