一、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;
	}
}

  

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

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

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

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

原文地址:https://www.cnblogs.com/vpersie2008/p/12722230.html