单例设计模式
package test; //单利模式 public class demo1 { public static void main(String[] args) { /*Singleton s1 = Singleton.s; //成员变量被私有 Singleton s2 = Singleton.s; System.out.println(s1==s2);*/ Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); System.out.println(s1==s2); } } //饿汉式 /*class Singleton{ //私有构造方法 private Singleton(){} //创建本类的对象 私有成员变量 private static Singleton s = new Singleton(); //对外提供get方法 public static Singleton getInstance(){ return s; } }*/ //懒汉式 单例的延迟加载模式 多线程访问会有安全隐患 /*class Singleton{ //私有构造方法 private Singleton(){} //私有成员变量 private static Singleton singleton ; //提供get 方法 public static Singleton getInstance() { if(singleton == null){ singleton = new Singleton(); } return singleton; } }*/ //饿汉式和懒汉式区别 //饿汉式是空间换时间,懒汉式是时间换空间 //饿汉式不会创建建多个对象,懒汉式有可能创建多个对象 class Singleton{ //私有构造方法 private Singleton(){} //私有成员变量 public static final Singleton singleton = new Singleton() ; }