如何正确实现java单例类
导读:在Java中,要正确地实现一个单例类,可以使用以下几种方法: 懒汉式(Lazy Initialization): public class Singleton { private static Singleton instanc...
在Java中,要正确地实现一个单例类,可以使用以下几种方法:
- 懒汉式(Lazy Initialization):
public class Singleton {
private static Singleton instance;
private Singleton() {
}
public static synchronized Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
- 饿汉式(Eager Initialization):
public class Singleton {
private static final Singleton instance = new Singleton();
private Singleton() {
}
public static Singleton getInstance() {
return instance;
}
}
- 双重检查锁定(Double-Checked Locking):
public class Singleton {
private static volatile Singleton instance;
private Singleton() {
}
public static Singleton getInstance() {
if (instance == null) {
synchronized (Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
- 静态内部类(Static Inner Class):
public class Singleton {
private Singleton() {
}
private static class SingletonHolder {
private static final Singleton INSTANCE = new Singleton();
}
public static Singleton getInstance() {
return SingletonHolder.INSTANCE;
}
}
- 枚举(Enum):
public enum Singleton {
INSTANCE;
public void doSomething() {
// ...
}
}
以上五种方法都可以实现Java单例类。在实际项目中,可以根据需求和场景选择合适的实现方式。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何正确实现java单例类
本文地址: https://pptw.com/jishu/698122.html