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;
}
}
如对本文有疑问,
点击进行留言回复!!
网友评论