在类中实现单例模式,即限制该类只能有一个实例。
时间: 2024-12-13 08:24:43 浏览: 8
单例模式是一种设计模式,它保证一个类仅有一个实例,并提供全局访问点。这种模式通常用于需要控制资源访问、管理数据库连接、日志记录等场景,以避免创建过多的对象造成系统性能下降或资源浪费。
在Java中,有多种实现单例模式的方式:
1. **饿汉式**:静态成员初始化块加载在类加载时就完成,这是线程安全的,因为所有的类加载都是串行的。
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() { return instance; }
}
```
2. **懒汉式**(线程不安全):只有当第一次请求时才创建实例,可以使用synchronized关键字添加线程同步。
```java
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
3. **双重检查锁定**(线程安全):使用 volatile 和 lazy initialization technique 来优化懒汉式。
```java
public class Singleton {
private volatile static Singleton singletonInstance;
private Singleton() {}
public static Singleton getInstance() {
if (singletonInstance == null) {
synchronized (Singleton.class) {
if (singletonInstance == null) {
singletonInstance = new Singleton();
}
}
}
return singletonInstance;
}
}
```
阅读全文