classSingle{privateSingle(){}//1.私有构造函数privatestatic Single s =newSingle();//2.创建本类对象publicstatic Single getInstance(){//3.对外提供公共的访问方法return s;}}classUseSingle{publicstaticvoidprint(){//4.使用饿汉式单列
Singleton s = Singleton.getInstance();}}
懒汉式(面试写这种方式,多线程的问题)
//懒汉式,单例的延迟加载模式classSingle{privateSingle(){};//1.私有构造函数privatestatic Single s;//2.声明一个本类的引用publicstatic Single getInstance(){//3.对外提供公共的访问方法if(s == null){//线程1,线程2
s =newSingle();return s;}}}
第三种格式(很少用)
classSingle{privateSingle(){};publicstaticfinal Single s =newSingle();//final是最终的意思,被final修饰的变量不可以被更改}