java中的单例设计模式
时间: 2024-11-22 18:43:37 浏览: 5
在Java中,单例设计模式是一种创建型设计模式,用于保证一个类仅有一个实例,并提供一个全局访问点。这个模式的主要目的是控制资源的分配,如数据库连接、线程池等,避免重复创建和内存浪费。
常见的单例模式实现有几种:
1. **饿汉式 Singleton** (Static initialization block): 在类加载时就创建了唯一实例。优点是线程安全,但不利于懒加载。
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() { return instance; }
}
```
2. **懒汉式 Singleton with Double Check Locking**: 使用 volatile 和双重检查锁定(dcl)来延迟实例化,提高性能。这种方式只有在第一次请求实例时才会初始化。
```java
public class Singleton {
private volatile static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
```
3. **静态内部类实现 Singleton**: 利用了 Java 的类加载机制保证线程安全性,同时实现了延迟加载。
```java
public class Singleton {
private static class SingletonInstance {
private static final Singleton INSTANCE = new Singleton();
}
private Singleton() {}
public static Singleton getInstance() {
return SingletonInstance.INSTANCE;
}
}
```
阅读全文