java单例模式4种使用方式分享
程序员文章站
2024-02-24 15:40:16
1、java concurrency in practice的list复制代码 代码如下:public class singleton { &nbs...
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;
}
}