当前位置: 首页 > 图灵资讯 > java面试题> 【Java面试题】Java开发工程师面试准备

【Java面试题】Java开发工程师面试准备

来源:图灵教育
时间:2023-02-25 09:21:22

  JavaDevelopments准备面试,首先要找一个好的模板,可以参考一些优秀简历,借鉴优质内容,把自己展示出来,面试前不要太认真,因为没时间准备充分,所以在面试之前就吃亏了。除了这些,还可以为Java开发提供方便。

Java开发工程师面试准备

  在Java工程师的职位上,考虑一些算法和数据结构的基础,从非常基础的主题开始,甚至像链接这样的数据结构。例如简单的数据结构,它检查访问者是否编写程序。将简单的数据结构结合起来以实现新的功能,或对常规算法进一步优化,计算算法复杂度等等。

  一、Java开发工程师如何在面试中设计简历?

  本人的工作经验就是,每个职位的具体要求不一样,所以大家不能把所有的职位都放在一份普通的简历上,最好根据具体公司的具体职位来定制。自然不是要大家编故事,而是要突出与目标职位相匹配的经验和能力。每个人都要申请一名开发或测试工程师,而申请TeamLeader或技术经理的职位则完全不同。比方说,如果我要申请一份管理性很强的工作,我会在简历上恰当地强调我曾从0成立了一支10人的技术团队。内部有多少高级Java开发工程师、多少数据库工程师等,这将更加令人信服;同理,不同技术岗位的需求也是不一样的。每个人写履历表的第一个目标,就是要让履历表活下来。由于通常一个职位会收到大量的简历,如果简历不能写的很清楚,让HR觉得合适,很有可能一开始就被扫地出门,没有机会参加面试。

  二、JavaDevelopment工程师是如何突出专业技能的?

  许多履历中写的都是Java、JavaScript和Python,但却写了几页。这一点并没有什么不对,但是最好的办法是突出你的核心技术,例如,“我有8年Java开发经验,对Java并发或Java安全非常在行。但是请注意,在强调重点时,也不要过分夸大其词,因为有时当我们发现一份履历太「精熟」时,首先会感到怀疑,而不是认为这个人很牛,所以要适当把握,事实才是基础。此外,就项目经验而言,我建议按时间顺序从近到远排列,更好地体现目标职位的配对,突出自己项目的难度和价值,以及自己在项目中的角色。这也有助于面试官更好地判断应聘者的能力和在团队中的地位。

  三、Java开发工程师提供数据支持。

  对工程师来说,数量比质量更重要,所以让面试官和HR都能认识到每个人的经验或闪光点是可以衡量的事实。例如,简历中强调“我很擅长快速学习”的说法的确很有用,但是如果配上一句“用两周学过Clojure语言,做一个撮合系统”的话,更能体现“快速学习”的能力。也有许多人的表达更加模棱两可,比如在简历上写着“我大大改善了系统的性能”,但是作为面试官,我可能不太清楚这个“大幅度”是什么概念。所以大家最好写清楚一点,比如“一个四核的8G配置,将吞吐量从2000QPS提高到8000QPS,平均请求是100Kbytes等,这很有说服力。

  四、JavaDevelopment工程师说明你的成果会很加分。

  比方说,作为开源项目的贡献者,有一个内容非常丰富的博客,有许多PR,在Github上发表过什么技术文章,在QCon或ArchSummit上分享过什么文章等。这类公开可见的结果比你自己评估自己要有效得多。

  五、Java开发工程师在面试中体现代码能力。

  有些面试者,平时都很认真工作,但是面试前没有时间准备,会比较吃亏,因为很多面试时考察的算法和数据结构不一定在平时的工作中使用,面试时如果有一点生疏,就会给面试官留下不好的印象。因此,每个人在准备技术性面试时,在编码方面都必须预先做一个预热,至少让自己的基础知识处于一个良好的状态。

  另外,在面试编码时,面试官会逐步深入,检验面试者对算法的理解是否达到预想的深度,是否能很好地沟通,是否能了解面试官的主要目标,以及通过讨论能否逐渐清楚地了解一些不清楚的东西。具体地说,编码,至少能体现出好的编码习惯,让面试官觉得你是个能全面思考、能写出高质量代码的人。涉及到名称和结构,最好参照行业内较好的做法,因为这些小地方,正是代码质量的体现。

  还有,很多时候,面试者需要在白板上写代码。对此,我发现许多人没有很好地适应这种情况,比如Java开发人员,大多使用Eclipse或IDEA来开发,以致于有些采访者,甚至不知道main函数的某些细节,这是非常可怕的。所以,要记得诸如主要API结构等。

  六、面试必需记住的知识要点。

  第一,认真阅读招聘需求书。由于招聘者经常会反映出面试官对我们的期望以及未来工作的主要领域。举例来说,Java后台工程师的一个普通职位,可能会说明候选人需要具有高度并行性,了解JVM基础,熟悉Spring或Netty这些开放源码框架,每个人都可以有针对性去做准备,因为没人能保证自己还能清晰地记得一、二年前做过的知识点。

  要谈到Java采访的核心知识,大家可以参考极客时间推出的Java核心技术36讲栏目,该栏目的设计就是为了满足这方面的需求。极客时间团队在内容和主题上充分借鉴了主流互联网巨头在Java面试中的问题域,选取其中的典型问题,肯定会对大家有所帮助。栏目中,内容设计的目的都是为了让大家能够非常熟悉Java语言的核心基础功能,掌握主要知识。例如,并发容器和底层容器,最常见的ConcurrentHashMap或HashMap,这些都是多种并发基本元素,Synchronized基础机制、ReentrantLock、线程池等,一直是Java采访中的热门话题。此外,JVM也是一个很大的范围,分成了Runtime、GC、编译器等模块,包含了一些所谓Serviceability的特性,事实上,在所有这些方面都有可能被面试官所忽略,也许在我们整个中国从事JVM开发的团队都是手忙脚乱的,但在Java面试中却不会影响JVM考试,每个人还是要对这些知识点有深入的理解。

  此外,如今Java开发正被越来越多地应用于各种开放源码框架,包括微服务等新的软件架构形式,因此还需要充分了解主流开源框架。比方说,Spring或Mybatis这样的商业开发框架可能会成为常规业务开发的标配,而在Spring中,像bean的生命周期,AOP这样的基本概念,就需要更深入地了解。假如每个人都想要得到大数据,那么对于Hadoop,Spark这样的开放源码框架就很重要。

  注意热点也是很重要的,我们的科技人员应该经常看到这个世界。例如有一段时间,面试时会被问到Hash碰撞之类,都是因为在那个时候一些大工厂发生这样的攻击。又如前两年,有很多人在面试时被问及类似抢购、秒杀等场景。假如每个人都完全不关心这些热点,在面试时被问到再想,时间有限加上紧张,很难想出足够。在过去的两年里,微服务似乎成为了像Dubbo或SpringClo这样的必需主题。