单例模式懒汉和饿汉代码
时间: 2024-04-14 16:24:23 浏览: 105
单例模式是一种设计模式,用于确保一个类只有一个实例,并提供一个全局访问点来获取该实例。在单例模式中,懒汉和饿汉是两种常见的实现方式。
1. 懒汉模式:
懒汉模式是指在需要使用实例时才创建对象。以下是懒汉模式的代码示例:
```java
public class Singleton {
private static Singleton instance;
private Singleton() {
// 私有构造函数
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
在懒汉模式中,通过一个静态变量`instance`来保存实例,初始值为null。在`getInstance()`方法中,首先检查`instance`是否为null,如果为null,则创建一个新的实例并赋值给`instance`,然后返回该实例。由于懒汉模式是线程安全的,因此在`getInstance()`方法上加了`synchronized`关键字,确保在多线程环境下只有一个线程可以创建实例。
2. 饿汉模式:
饿汉模式是指在类加载时就创建对象,无论是否使用该实例。以下是饿汉模式的代码示例:
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
// 私有构造函数
}
public static Singleton getInstance() {
return instance;
}
}
```
在饿汉模式中,通过一个静态变量`instance`来保存实例,并在定义时就进行初始化。在`getInstance()`方法中,直接返回`instance`即可。由于饿汉模式在类加载时就创建了实例,因此不存在线程安全问题。
阅读全文