是典型的二十三种设计模式之一,在面试中非常高频的一道考点,要求手写单例模式的代码,要求写出一个线程安全的单例模式。
首先,什么是单例模式?
就是在整个程序里边只能有一个实例,也就是说这个类的对象不能随便创建,在系统中要永远保证只有一个实例对象。
什么情况下会使用单例呢?
一般情况下是全局使用的类,会消耗很多系统资源的类(开发中的数据库连接池、工厂类、数据源等……),在我们使用Spring框架的时候呢,Spring的bean的默认作用域也是单例的。
在实现单例的时候,要注意三个实现的要点:
a)私有化构造器
b)持有该类的属性
c)对外提供获取实例的静态方法
/**
*饿汉式
*/
public class Singleton1 {
private static Singleton1 instance = new Singleton1();
private Singleton1() {
}
private static Singleton1 getInstance() {
return instance;
}
}