概念
Java单例模式是一种常见的设计模式,其主要作用是保证在Java程序中,某个类只有一个实例(对象)存在,某些管理器和控制器常被设计成单例模式。
特点
- 单例类只能有一个实例。
- 单例类的实例必须由该单例类自行创建。
- 单例类必须为所有其他对象提供这一实例。
实现
1、懒汉式(非线程安全)
public class Singleton1 {
private Singleton1() {}
private static Singleton1 instance = null;
public static Singleton1 getInstance() {
if (instance == null) {
instance = new Singleton1();
}
return instance;
}
}
Singleton1类通过将构造方法修饰符限制为private,防止被其他外部类实例化,它的唯一实例只能通过getInstance()方法获得(通过Java反射机制可以访问类的私有方法并实例化,此处暂不讨论)。该单例模式为懒汉式单例,并没有考虑到并发环境下的线程安全问题,故并发环境下有可能出现多个实例。
2、懒汉式(线程安全)
public class Singleton2 {
private static Singleton2 i