讲给面试官听的单例模式

单例模式是我们在面试过程中最常接触的一个设计模式,现在我们来聊聊什么是单例模式

一.什么是单例模式

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。属于创建型模式,它提供了一种创建对象的最佳方式。单例模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。为了保证内存中有且仅有一个对象,避免频繁的创建对象造成对内存的消耗,让所有需要调用这个对象的地方都使用这一个对象。

二.单例模式的类型

1.懒汉式
懒汉式指的是在需要使用的时候才会去创建该单例对象。
懒汉式单例模式实现:

public class Singleton {
	private Singleton singleton;
	private Singleton(){
	
	}
	public static Singleton getInstance(){
		if (singleton == null) {
			singleton = new Singleton();
	    }
	    return singleton;
}

对于懒汉式单例实现存在一个问题,就是如何确保只创建一个对象?若两个或多个线程同时判断singleton为空,则会创建多个对象。因此我们需要解决线程安全问题。
说到线程安全想到的就是锁了。
有事先走,下次在跟。。。。。。。。。

2.饿汉式
饿汉式指的是在类加载时即创建该单例对象。
饿汉式单例模式实现:

public class Singleton {
	private static final Singleton singleton = new Singleton();
	private Singleton(){
	
	}
	public static Singleton getInstance(){
		return singleton;
	}

猜你喜欢

转载自blog.csdn.net/hm_135/article/details/107882944