用Java写一个单例代码
时间: 2024-01-28 17:03:48 浏览: 80
java单例模式代码实例
当使用Java编写单例模式时,有几种实现方式。以下是一种常见的懒汉式单例模式的示例代码:
```java
public class Singleton {
private static Singleton instance;
private Singleton() {
// 私有构造函数,防止外部实例化
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
```
在这个示例中,`Singleton` 类有一个私有的静态成员变量 `instance`,用于保存单例实例。构造函数被声明为私有,以防止通过 `new` 关键字在外部实例化该类。`getInstance()` 方法是获取单例实例的入口点。
在懒汉式单例模式中,实例只有在首次调用 `getInstance()` 方法时才被实例化。在多线程环境下,为了保证线程安全,使用了双重检查锁定。首先检查 `instance` 是否为空,如果为空,则进入同步块,再次检查 `instance` 是否为空,如果仍然为空,则实例化 `Singleton` 对象并将其赋值给 `instance` 变量。
这种方式可以保证在多线程环境下只会创建一个实例,并且延迟实例化,提高了性能。
阅读全文