java单例模式4种使用方式分享

时间:2021-05-19

1、Java Concurrency In Practice的List
复制代码 代码如下:
public class Singleton {
private static class SingletonHolder {
public static Singleton resource = new Singleton();
}
public static Singleton getResource() {
return SingletonHolder.resource ;
}

private Singleton(){

}
}

2、effective Java
复制代码 代码如下:
public class Singleton {
public static final Singleton INSTANCE = new Singleton();

private Singleton(){}

public void method(){
//...
}
public static void main(String[] a){
//调用方法。
Singleton.INSTANCE.method();
}
}

3、利用枚举巧妙创建单实例
复制代码 代码如下:
/**
* 利用枚举巧妙创建单实例
*/
public enum Singleton {
INSTANCE;
public void method(){
//...
}
public static void main(String[] a){
//调用方法。
Singleton.INSTANCE.method();
}
}

4、双重锁
复制代码 代码如下:
public class Singleton {
private static volatile Singleton instance = null;
/**
* 防止其他人new对象
*/
private Singleton(){
System.out.println("init");
}
public static Singleton getInstance(){
if(instance == null){
synchronized(Singleton.class){
if(instance == null){
instance = new Singleton();
}
}
}
return instance;
}
}

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章