public class Singleton {
//饿汉式
/* private static Singleton s1=new Singleton();
private Singleton() {
}
public static Singleton getSingle() {
return s1;
}
}
public class Singleton {
//懒汉式
private static Singleton single2=null;
private Singleton() {
// TODO Auto-generated constructor stub
}
public static Singleton getSingle2() {
if(single2==null) {
single2=new Singleton();
}
return single2;
}
考虑线程安全
public class Singleton {
private static Singleton single3=null;
private Singleton() {
// TODO Auto-generated constructor stub
}
public static Singleton getSingle2() {
if(single3==null) {
synchronized(Singleton.class) {
if(single3==null) {
single3=new Singleton();
}
}
}
return single3;
}
}
利用静态内部类实现
public class Singleton {
private static class Hoder{
private static Singleton Single4=new Singleton();
}
private Singleton() {
// TODO Auto-generated constructor stub
}
public static Singleton getSingle2() {
return Hoder.Single4;
}
}