1. 什么是单例模式?
单例模式(Singleton Pattern)是一种设计模式,确保某个类在整个应用中只有一个实例,并且提供全局访问点。它有以下特点:
- 确保只有一个实例。
- 提供全局访问点。
- 防止多次实例化,节约资源。
2. 如何实现单例模式?
单例模式有多种实现方式,以下是最常见的几种。
2.1 饿汉式(Eager Initialization)
饿汉式单例模式在类加载时就创建实例,线程安全,但是如果不使用这个类,实例也会被创建,可能导致内存浪费。
public class Singleton {// 在类加载时就创建实例,线程安全private static final Singleton instance = new Singleton();// 私有构造函数,防止外部实例化private Singleton() {}// 提供全局访问点public static Singleton getInstance() {return instance;}
}
优点:
- 实现简单。
- 线程安全。
缺点:
- 可能会导致内存浪费,尤其是当实例并不一定被使用时。
2.2 懒汉式(Lazy Initialization)
懒汉式单例模式是在首次使用时才创建实例,但在多线程环境下,需要注意线程安全问题。
public class Singleton {// 延迟加载实例private static Singleton instance;// 私有构造函数,防止外部实例化