默写两种单例模式 java
时间: 2024-06-14 17:02:39 浏览: 161
在Java中,单例模式是一种常用的软件设计模式,用于确保一个类只有一个实例,并提供一个全局访问点。以下是两种常见的单例模式实现:
1. **懒汉式单例模式**(也称为线程不安全的单例模式):
这种实现只有在首次访问时才会创建实例,如果多个线程同时访问,可能会导致多个实例被创建。为了保证线程安全,通常会使用 `synchronized` 关键字或双重检查锁定(Double-Checked Locking)。
```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;
}
}
```
2. **饿汉式单例模式**(线程安全的单例模式):
这种实现是在类加载时就创建了单例实例,所以对多线程环境来说是安全的,不需要额外的同步措施。
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
```
阅读全文