分享

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

 爱开发 2022-08-02 发布于广东

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

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

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

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

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

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

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

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

单例模式一般写法:

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

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

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

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

【END】

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多