JVM中的单例模式默认使用的是什么类型
时间: 2024-09-17 12:00:44 浏览: 5
在JVM(Java Virtual Machine)中,单例模式(Singleton Pattern)默认实现的方式取决于具体的编程技术。有两种常见的做法:
1. **非线程安全版本**(饿汉式单例):在类加载时就实例化了单例对象,这种方式是在所有请求到达前就已经创建好对象,所以它是线程不安全的,如果多个线程同时访问可能会导致多个实例。
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {}
public static Singleton getInstance() { return instance; }
}
```
2. **线程安全版本**(懒汉式单例+双重检查锁定):通过加锁保证线程安全,只有当需要获取实例时才创建。这种方式引入了 `synchronized` 关键字来防止并发问题。
```java
public class Singleton {
private volatile static Singleton instance;
private Singleton() {}
public synchronized static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```