java编程进阶 singleton pattern
时间: 2023-10-10 14:14:18 浏览: 95
单例模式是一种常见的设计模式,用于确保一个类只有一个实例,并提供全局访问点。在 Java 中,实现单例模式的方法有多种,其中最常见的是懒汉式和饿汉式。
1. 懒汉式
懒汉式是指在第一次需要使用实例时才创建它。这种方式需要使用一个私有静态变量来保存实例,并提供一个公有静态方法来获取它。具体实现如下:
```
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
在这个实现中,私有变量 `instance` 用于保存实例。在 `getInstance()` 方法中,如果 `instance` 为 `null`,则创建一个新的实例并返回,否则直接返回现有的实例。该实现的缺点是在多线程环境下可能会有竞争条件,需要进行额外的同步处理。
2. 饿汉式
饿汉式是指在类加载时就创建实例。这种方式需要使用一个私有静态变量来保存实例,并在静态初始化代码块中创建它。具体实现如下:
```
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() {
return instance;
}
}
```
在这个实现中,私有变量 `instance` 在类加载时就被创建。由于在类加载时就创建了实例,因此不存在多线程竞争的问题。该实现的缺点是可能会导致应用启动时的性能问题,因为实例的创建可能很耗时。
以上就是 Java 中实现单例模式的两种方式。选择哪种方式取决于具体应用场景和性能要求。
阅读全文