单例设计模式中的懒汉式和饿汉式
Posted majortom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单例设计模式中的懒汉式和饿汉式相关的知识,希望对你有一定的参考价值。
单例设计模式:确保一个类只有一个实例,并提供该实例的全局访问点。即使用一个私有构造函数,一个私有静态变量及一个公有静态函数来实现。
1 /* 2 单例模式,懒汉式 3 弊端:线程不安全,有延迟加载的情况出现,即不是在类创建时就已经加载了,而是调用的getInstance() 4 解决方法:加锁,即在getInstance()上面直接加synchronized,但是这样会降低效率 5 不推荐使用 6 */ 7 public class SingleDemoL { 8 private static SingleDemoL singleDemoL; 9 private SingleDemoL(){ 10 11 } 12 public static SingleDemoL getInstance(){ 13 if (singleDemoL==null) 14 singleDemoL=new SingleDemoL(); 15 return singleDemoL; 16 } 17 }
1 /* 2 单例模式,饿汉式 3 弊端:较常用,但是容易产生垃圾对象 4 */ 5 public class SingleDemoHungry { 6 //急切地创建了对象,故称为饿汉式 7 private static SingleDemoHungry singleDemoHungry=new SingleDemoHungry(); 8 private SingleDemoHungry(){} 9 public static SingleDemoHungry getInstance(){ 10 return singleDemoHungry; 11 } 12 }
以上是关于单例设计模式中的懒汉式和饿汉式的主要内容,如果未能解决你的问题,请参考以下文章