首页 > 其他 > 详细

单例模式 之 单例模式——饿汉模式

时间:2019-09-04 17:47:18      阅读:66      评论:0      收藏:0      [点我收藏+]

饿汉模式特点:见名知意,“他”很饿,迫切需要找到吃的... 所以 饿汉模式需要 第一时间 “找到吃的”(构建对象)。

如下代码:

 1 /**
 2  * 饿汉模式
 3  */
 4 public class HungrySingleton {
 5     private static  HungrySingleton instance=new HungrySingleton();
 6 
 7     /**
 8      * 禁止外部构建
 9      */
10     private HungrySingleton(){}
11 
12     /**
13      * 由外部调用
14      * @return
15      */
16     public static HungrySingleton getInstance(){
17         return instance;
18     }
19 
20     /**
21      * 测试
22      * @param args
23      */
24     public static void main(String[] args) {
25         for(int i=0;i<20;i++){
26             new Thread(()->{
27                 System.out.println(HungrySingleton.getInstance());
28             }).start();
29         }
30     }
31 
32 }

测试结果:运行二十线程,运行的结果为同一个用例。

 2 com.company.HungrySingleton@19281561
 3 com.company.HungrySingleton@19281561
 4 com.company.HungrySingleton@19281561
 5 com.company.HungrySingleton@19281561
 6 com.company.HungrySingleton@19281561
 7 com.company.HungrySingleton@19281561
 8 com.company.HungrySingleton@19281561
 9 com.company.HungrySingleton@19281561
10 com.company.HungrySingleton@19281561
11 com.company.HungrySingleton@19281561
12 com.company.HungrySingleton@19281561
13 com.company.HungrySingleton@19281561
14 com.company.HungrySingleton@19281561
15 com.company.HungrySingleton@19281561
16 com.company.HungrySingleton@19281561
17 com.company.HungrySingleton@19281561
18 com.company.HungrySingleton@19281561
19 com.company.HungrySingleton@19281561
20 com.company.HungrySingleton@19281561
21 com.company.HungrySingleton@19281561
22 
23 Process finished with exit code 0

安全性:在类加载时会将进行加载,等到调用时该类已经被处理好了所以能保证多线程调用下,调用的是同一个实例。

懒加载:如上所说,在类加载时就已经加载出来,所以不存在懒加载。

性能:性能不是很好,若长期不使用会占用内存空间,内存空间不足时容易造成内存溢出异常。

 

单例模式 之 单例模式——饿汉模式

原文:https://www.cnblogs.com/zhangzhonghui/p/11460339.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!