单例默认 java实现
时间: 2023-11-17 17:08:15 浏览: 78
单例模式的java实现
Java中的单例模式可以通过以下方式实现:
1. 饿汉式单例模式:在类加载时就创建对象实例,线程安全。示例代码如下:
```java
public class Singleton {
private static Singleton instance = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return instance;
}
}
```
2. 懒汉式单例模式:在第一次调用getInstance()方法时才创建对象实例,线程不安全。示例代码如下:
```java
public class Singleton {
private static Singleton instance;
private Singleton() {
}
public static 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;
}
}
```
需要注意的是,以上三种方式都可以实现单例模式,但饿汉式单例模式由于在类加载时就创建对象实例,可能会浪费一定的内存空间;懒汉式单例模式则存在线程不安全的问题;双重检查锁单例模式解决了线程安全问题,但在某些情况下可能会出现问题,因此需要谨慎使用。同时,还有其他方式实现单例模式,比如使用枚举、静态内部类等方式。
阅读全文