首页主机资讯如何正确实现java单例类

如何正确实现java单例类

时间2024-09-09 17:10:03发布访客分类主机资讯浏览1310
导读:在Java中,要正确地实现一个单例类,可以使用以下几种方法: 懒汉式(Lazy Initialization): public class Singleton { private static Singleton instanc...

在Java中,要正确地实现一个单例类,可以使用以下几种方法:

  1. 懒汉式(Lazy Initialization):
public class Singleton {
    
    private static Singleton instance;


    private Singleton() {
}


    public static synchronized Singleton getInstance() {

        if (instance == null) {
    
            instance = new Singleton();

        }
    
        return instance;

    }

}

  1. 饿汉式(Eager Initialization):
public class Singleton {
    
    private static final Singleton instance = new Singleton();


    private Singleton() {
}


    public static Singleton getInstance() {
    
        return instance;

    }

}

  1. 双重检查锁定(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;

    }

}

  1. 静态内部类(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;

    }

}

  1. 枚举(Enum):
public enum Singleton {
    
    INSTANCE;


    public void doSomething() {

        // ...
    }

}
    

以上五种方法都可以实现Java单例类。在实际项目中,可以根据需求和场景选择合适的实现方式。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何正确实现java单例类
本文地址: https://pptw.com/jishu/698122.html
java中的get方法怎么用 深入理解java cipher类的工作原理

游客 回复需填写必要信息