参考回答:
懒汉式单例模式:延迟实例化,但节省空间
package com.sxh.singleton; public class SingleTon { private volatile static SingleTon uniqueInstance;//利用一个静态变量来记录SingleTon类的唯一实例 //其他有用的单件类的数据 private SingleTon(){} //类外无法访问 public static SingleTon getInstance(){ if(uniqueInstance==null){ //确保只有一个实例 synchronized (SingleTon.class) { //多线程的情况不会出现问题,线程同步问题 if(uniqueInstance==null){ uniqueInstance=new SingleTon();//如果我们不需要这个实例,则永远不会产生 } } } return uniqueInstance; } //其他有用的单件类的方法,单件类也可以是一般的类,具有一般的数据和方法}饿汉式单例模式:急切的创建实例,而不用延迟实例化
package com.sxh.singleton;public class SingleTon { private volatile static SingleTon uniqueInstance=new SingleTon(); //其他有用的单件类的数据 private SingleTon(){} //类外无法访问 public static SingleTon getInstance(){ return uniqueInstance; }//其他有用的单件类的方法,单件类也可以是一般的类,具有一般的数据和方法}IoDH实现单例模式
package com.sxh.singleton;public class SingleTon { private SingleTon(){} //类外无法访问 private static class HolderClass{ //静态内部类 private static final SingleTon uniqueinstance=new SingleTon(); } public static SingleTon getInstance(){ return HolderClass.uniqueinstance; }//其他有用的单件类的方法,单件类也可以是一般的类,具有一般的数据和方法}



