标签:
单例模式之饿汉模式:
示例代码 ↓
1 class Demo{ 2 private static Demo obj = new Demo(); //在本类中保存本类型静态私有字段 3 private Demo(){} //私有化构造函数 使得本类在外部无法实例化 4 public static Demo getInstance(){ //生命公开静态方法 通过此方法获取本类的实例 5 if(obj==null)//判断对象是否为空 6 obj = new Demo(); 7 return obj; 8 } 9 }
上面这种情况之所称之为饿汉模式 是因为这种方式实现单例模式 在程序加载进java虚拟机时对象就要被立即创建 有种迫不及待的感觉
缺点:影响加载程序时的速度。
优点:在获取对象时速度较快。
单例模式之懒汉模式:
示例代码 ↓
1 class Demo{ 2 private static Demo obj; //在本类中保存本类型静态私有字段 3 private Demo(){} //私有化构造函数 使得本类在外部无法实例化 4 public static Demo getInstance(){ //声明公开静态方法 通过此方法获取本类的实例 5 if(obj==null)//判断对象是否为空 6 obj = new Demo(); 7 return obj; 8 } 9 }
上面这种情况称之为懒汉模式 因为此方式程序被加载进java虚拟机时仅仅声明了一个字段并未创建实例 等到第一次获取实例的时候才创建实例
缺点:在第一次获取实例的时候速度较慢。
优点:不会影响程序的加载速度,减少用户的等待时间。
ps:以上为个人理解,如有什么不对的地方,欢迎下方评论指明。
标签:
原文地址:http://www.cnblogs.com/suoyi/p/4823264.html