public class singleton {
//饿汉式单例,天然线程安全,方法没同步,调用效率高
    private static singleton instance =new singleton();
    private singleton(){ //私有化构造器

    }
    public static singleton getInstance(){
        return  instance;
    }
}

//懒汉式,方法同步,调用效率低
class singleton2{
    private static singleton2 s;
    private singleton2(){ //私有化构造器

    }
    public static synchronized singleton2 getInstance(){
        if(s==null){
            s=new singleton2();
        }
        return s;
    }
}

//静态内部类实现,线程安全,效率高,延迟加载
class singleton3{
    private static class singletoninstance{
        private static final singleton3 instance =new singleton3();
    }
    public static singleton3 getInstance(){
        return singletoninstance.instance;
    }
    private singleton3(){}

}

//枚举法加载
 enum singleton4{
    INSTANCE;
}