java设计模式(单例模式)
饿汉模式:
1 package SingleTon; 2 3 public class Singleton { 4 //1.将构造方法私有化,不允许外部直接创建对象 5 private Singleton(){ 6 } 7 8 //2.创建类的唯一实例,使用private static修饰(private不允许外部访问) 9 private static Singleton instance = new Singleton(); 10 11 //3.提供一个用于获取实例的方法 12 public static Singleton getInstance(){ 13 return instance; 14 } 15 16 }
懒汉模式:
1 package SingleTon; 2 public class Singleton2 { 3 //1.将构造方法私有化,不允许外边直接创建对象 4 5 //2.创建类的唯一实例,使用private static修饰 6 private static Singleton2 instance; 7 8 //3.提供一个用于获取实例的方法,使用public static修饰 9 public static Singleton2 getinstance(){ 10 if (instance == null) { 11 instance = new Singleton2(); 12 } 13 return instance; 14 } 15 16 17 }
测试运行:
package SingleTon; /*两种模式的区别:饿汉模式的特点是加载类时比较慢,但是运行 *时获取对象的速度比较快,线程安全 * 懒汉模式特点是加载类时比较快,但运行时获取对象的速度比较慢,线程不安全 */ public class Test { public static void main(String[] args) { // 饿汉模式 Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); if (s1 == s2) { System.out.println("s1和s2是同一个实例"); } else { System.out.println("s1和s2不是同一个实例"); } // 懒汉模式 Singleton2 s3 = Singleton2.getinstance(); Singleton2 s4 = Singleton2.getinstance(); if (s3 == s4) { System.out.println("s3和s4是同一个实例"); } else { System.out.println("s4和s4不是同一个实例"); } } }
人生永远无法回头,就连这平淡不惊的一幕,终有一日也会碎落满地

浙公网安备 33010602011771号