---单例设计模式之饿汉式---
创建SingleInstance类
1 /** 2 * 单例设计模式之饿汉式 3 */ 4 public class SingleInstance { 5 /** 6 * 私有化构造方法 7 */ 8 private SingleInstance() {} 9 /** 10 * 成员变量 11 */ 12 private static SingleInstance instance = new SingleInstance() ; 13 /** 14 * 提供一个静态的成员方法,返回该对象 15 */ 16 public static SingleInstance getInstance() { 17 return instance ; 18 } 19 }
创建测试类SingleInstanceDemo
1 /** 2 * 单例设计模式的思想: 保证该类在内存中只有一个实例(对象) 3 * 优点节省内存,提高内存利用率 4 */ 5 public class SingleInstanceDemo { 6 7 public static void main(String[] args) { 8 9 // 调用方法获取对象 10 SingleInstance instance1 = SingleInstance.getInstance() ; 11 SingleInstance instance2 = SingleInstance.getInstance() ; 12 13 // 输出 14 System.out.println(instance1 == instance2); 15 } 16 }
-------------------------------------------------------------------------------------------------------------
---单例设计模式之懒汉式---
创建SingleInstance2类
1 /** 2 * 单例设计模式之懒汉式 3 * 4 * 面试中写那种单例设计模式呢? 5 * 面试中写懒汉式: 因为懒汉式体现了两种思想, 第一种线程问题 , 第二种 延迟加载 6 * 7 * 开发中写饿汉式 8 */ 9 public class SingleInstance2 { 10 /** 11 * 私有化构造方法 12 */ 13 private SingleInstance2() {} 14 /** 15 * 提供一个成员变量 16 */ 17 private static SingleInstance2 instance = null ; 18 /** 19 * 提供一个静态的成员方法 20 */ 21 public static synchronized SingleInstance2 getInstance() { 22 23 if(instance == null){ 24 instance = new SingleInstance2() ; 25 } 26 return instance ; 27 } 28 }
创建测试类SingleInstanceDemo2
1 public class SingleInstance2Demo { 2 3 public static void main(String[] args) { 4 5 // 获取对象 6 SingleInstance2 instance1 = SingleInstance2.getInstance() ; 7 SingleInstance2 instance2 = SingleInstance2.getInstance() ; 8 9 // 比较 10 System.out.println(instance1 == instance2); 11 12 } 13 14 }
时间: 2024-10-13 01:04:35