面试官:你连单例模式你都不会,还好意思来应聘高级软件工程师?

文|洪生鹏 微信公众号 aikaifa

求职面试时,对于设计模式,面试官对这块也比较青睐,喜欢问求职者关于设计模式,特别是应聘中高级岗位。

我的一位同事杨工是java程序员,分享了一次他的面试经历,分享给大家,看看大家是怎样看待的。

有次他去面试Android开发岗位,面谈时面试官叫他手写单例模式代码,他写不出来,面试官说了一句很扎心的话,“连单例模式你都不会,还好意思应聘高级软件工程师?”杨工听了,脸红红彤彤的,杨工说“如果地下有缝的话,我想我真的会钻进去。”

小编认为,这位面试官也太直接了,就不能表达委婉点吗?到可以问问单例模式有什么不足,如何优化等话题啊。不过也不能全怪面试官,毕竟单例模式在众多模式中是最常见的一种模式,作为一名开发者,是需要掌握的。

单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例。

一般来说单例模式是这样通常单例模式在Java语言中,有两种构建方式:

  • 懒汉方式。指全局的单例实例在第一次被使用时构建。

  • 饿汉方式。指全局的单例实例在类装载时构建。

单例模式一般写法:

640?wx_fmt=png


这种写法要是运行在单线程上,问题不大,但在多线程就有点欠妥了。我们来稍微调整一下:

640?wx_fmt=png

细心的你会发现我们在getInstance()方法中加入了synchronized锁,这样能够在多线程中很好的工作,但是效率一般,并且大多数情况下不需要同步。

单例模式能阻止其他对象实例化其自己的单例对象的副本,从而确保所有对象都访问唯一实例。因为类控制了实例化过程,所以类可以灵活更改实例化过程。但也有不足之处。面试时要是能适当指出,并引出说出其他设计模式,譬如工厂模式,相信能为这次面试加分。

小编认为,面试前,应该多做一些准备,这样才能尽量避免一些基础的知识反而回答不上来的尴尬,不知对此你是怎么看待的,欢迎交流!

【END】


往期精选推荐


原来睡前玩手机就这么多不好,得知这几个危害后我默默地放下手机

男人在外越来越值钱,女人在家带小孩越来越不值钱?扎心了

月薪2W起的程序员做事细节曝光,终于知道了他们高薪的真相了

过“夫妻生活“到底是早上好还是晚上好?

你见过马化腾18年前编写的代码吗?

做好项目需求分析,才是项目管理的重中之重


640?wx_fmt=jpeg

分享职场攻略、技术心得和创业资源


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值