2024年4月19日发(作者:)
在 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 synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
```
3. 双检锁/双重校验锁(DCL,即 double-checked locking)单例
模式
在懒汉式单例模式的基础上,加上了同步锁,避免了线程安全的
问题。代码如下:
```java
public class Singleton {
private volatile static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if (instance == null) {
synchronized () {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
```
4. 静态内部类单例模式
利用了classloader的机制来保证初始化instance时只有一个线程,
是最推荐使用的单例模式。代码如下:
```java
public class Singleton {
private Singleton() {}
private static class SingletonHolder {
private static final Singleton INSTANCE = new Singleton();
}
public static final Singleton getInstance() {
return CE;
}
}
```
希望以上信息对您有帮助。
发布者:admin,转转请注明出处:http://www.yc00.com/web/1713540478a2269244.html
评论列表(0条)