java 有单例模式吗
时间: 2024-11-20 09:07:55 浏览: 3
Java单例模式简单示例
5星 · 资源好评率100%
当然有。在Java中,单例模式是一种设计模式,它保证一个类只有一个实例,并提供全局访问点。这种模式通常用于需要控制资源的对象,例如数据库连接、线程池、配置管理器等。Java有多种实现单例的方式,包括饿汉式、懒汉式、双重检查锁定(DCL)单例等。
1. **饿汉式**:在类加载时就创建了实例,这种方式简单直接,但可能导致早期内存消耗过大。
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
```
2. **懒汉式**:只有在第一次请求时才创建实例,常用 volatile关键字防止多线程问题。
```java
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
3. **双重检查锁定(DCL)**:在加锁前判断实例是否存在,进一步提高性能。
```java
public class Singleton {
private volatile static Singleton singleton;
private Singleton() {}
public static Singleton getInstance() {
if (singleton == null) { // 双重检查锁定
synchronized (Singleton.class) {
if (singleton == null) {
singleton = new Singleton();
}
}
}
return singleton;
}
}
```
阅读全文