用java举例说明三种单例模式
时间: 2023-07-18 11:19:00 浏览: 93
好的,以下是三种常见的单例模式及其Java实现:
1. 饿汉式单例模式(线程安全,但可能会浪费资源)
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
```
2. 懒汉式单例模式(线程不安全,需要加锁解决)
```java
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
3. 双重检查锁单例模式(线程安全,同时避免了过多的同步锁)
```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;
}
}
```
以上三种单例模式都能够保证在整个应用程序中只有一个实例对象,并且提供了全局访问点。具体使用哪一种单例模式,需要根据实际情况进行选择。
阅读全文