Java单例模式的实现
时间: 2023-03-22 22:01:11 浏览: 122
Java单例模式是一种设计模式,它确保一个类只有一个实例,并提供了一个全局访问点。
以下是Java单例模式的实现:
1. 饿汉式
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return instance;
}
}
```
在这种实现中,Singleton类的唯一实例在类加载时创建,并且getInstance()方法总是返回相同的实例。
2. 懒汉式
```java
public class Singleton {
private static Singleton instance = null;
private Singleton() {
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
在这种实现中,Singleton类的实例只有在第一次调用getInstance()方法时才会创建。这种实现需要使用synchronized关键字来确保线程安全。
3. 双重检查锁定式
```java
public class Singleton {
private volatile static Singleton instance = null;
private Singleton() {
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
```
在这种实现中,Singleton类的实例只有在第一次调用getInstance()方法时才会创建。它使用双重检查锁定来确保线程安全,同时使用volatile关键字来确保可见性。
阅读全文