单例模式

 设计模式相关知识在面试中经常被问到,其中的单例模式几乎是每次必问,同时还会要求手写单例模式的代码。 至于为什么也不难理解,它的实现代码简短,用较短的时间就能完成,同时代码中也不乏一些细节可以考察面试者 的基本功。简单啰嗦一下单例模式的基本知识,借用下网络搜索的结果:
      概念上可理解成一个类只有一个实例,实现上是要注意以下三点:
  1.       单例模式的类只提供私有的构造函数,
  2.       类定义中含有一个该类的静态私有对象,
  3.       该类提供了一个静态公有函数用于创建或获取它的静态私有对象
[java]  view plain  copy
  1. //懒汉式  
  2. public class SingletonA {  
  3.      private static SingletonA instance = null;  
  4.       
  5.      private SingletonA(){     }  
  6.       
  7.      public static SingletonA getSingletonA(){           
  8.           if(instance == null){  
  9.                instance = new SingletonA();  
  10.           }  
  11.           return instance;  
  12.      }      
  13. }  
  14.   
  15. //饿汉式  
  16. public class SingletonB {  
  17.      private static SingletonB instanceB = new SingletonB();  
  18.       
  19.      private SingletonB(){}  
  20.       
  21.      public static synchronized SingletonB getInstance(){  
  22.           return instanceB;  
  23.      }  
  24. }  
  25.   
  26. //双重锁定  
  27. public class SingletonC {  
  28.      private static SingletonC instance = null;  
  29.      private SingletonC(){};  
  30.       
  31.      public static SingletonC getInstance(){  
  32.           if(instance == null){  
  33.                synchronized (SingletonC.class) {  
  34.                     if(null == instance){  
  35.                          instance = new SingletonC();  
  36.                     }  
  37.                }  
  38.           }  
  39.           return instance;  
  40.      }  
  41. }  
       写了这么多,感觉是不是有点孔乙已了。好吧,其实面试官只是想知道下面几点
  1.        面试者是否了解单例,
  2.        是否知道懒汉式和饿汉式的区别,
  3.        是不是还知道有双重锁定这么一回事,
  4.        是否会注意到饿汉式需要同步操作才好。
      实际的面试过程中一般不会让你三种都写出来,前两种比较常考察,同时有经验的面试官还会在写代码过程留意你的表现,借一斑以窥全豹,顺便看看有没有可以引出接下来问题的考察点。不过最重要还是对概念理解程度的考察,至于代码中的一些小错误,比如命名是否规范这种类似错误是不会过多纠缠的。

Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值