阅读 234

关于Java面试中的提问

这篇文章我们聊聊 Java 技术初试那些事儿。

因为我是部门的 Java 初试官之一,面过不少人,所以还算有些发言权。

不同的面试官,面试的要求也不太一样,例如:有的要求表达好、会沟通;有的要求技术好、能直接上手撸代码,搞项目;有的要求人踏实、稍微带一带,能干活就行;有的要求。。。「这要求还挺多,感觉技术面试真挺难(坏笑)」。

面试过程基本都是问答形式,以我面试为例,不会随便乱问,提问是有条理的。接下来就聊聊,我经常会提的一些问题,以及问题背后的一些想法吧(如果是打酱油偶然浏览此篇,那就顺道当做再买个菜吧)。

1. 预热部分

Q:请简单做一下自我介绍?

A:上来问这么个问题,简历上都有,还问啥,难道脑袋瓦特啦?其实这会儿,主要让候选人平复一下心情,也默默暗示候选人面试正式开始啦(坏笑);① 看看候选人会不会滔滔不绝说个没完没了「时间掌控能力」;② 看看候选人会不会语无伦次「是不是没准备好或者表达能力有欠缺」。

Q:请针对做过的拿手项目做一下详细介绍?

A:咋问这么个问题,背后是不是暗藏杀机。主要通过候选人项目介绍,围绕负责实现的功能模块,引入后续的面试问题。如果候选人没说好,可能就没法很好地引导后续问题啦,候选人的话语权以及控制权可都在这儿体现啦。

Q:请针对项目中用到的技术做一下介绍?

A:但凡项目亲身做过,肯定不至于冷场(坏笑)。主要考察候选人,以往的项目的技术栈。如果招聘的岗位比较紧急,入职后就要上手干活,技术栈的匹配度,会稍显重要。

2. 框架部分

Q:简单介绍 Spring?简单介绍SpringMVC 的工作流程?

A:主要结合候选人回答的项目中用到的技术进行,仅以此举栗子展开。主要考察候选人:① 能否采用通俗易懂的方式,解释何为 IOC 和 AOP ;② 能否结合实际项目进行展开阐述;③ 以及各自的底层实现原理。能够回答出原理的,并自己动手编码模拟过 IOC 、AOP 的会稍稍加分。

Q:简单介绍 MyBatis 以及MyBatis 的使用注意事项?

A:主要考察候选人对 ORM 框架的使用程度。能够回答出 SQL 注入预防稍稍加分。

3. 存储部分

Q:Redis 常用的数据结构有哪些?Redis 中 setnx 与 set 啥区别?结合项目谈谈 Redis 的应用场景?

A:主要考察候选人对 Redis 的使用程度,以及Redis掌握的深度。能够回答出 setnx 底层实现方式稍稍加分。

Q:简单谈谈数据库索引?「数据库方面,仅以此为栗子」

A:主要考察候选人对数据库索引的分类,以及底层实现方式的了解程度「能够回答出优缺点稍稍加分」

4. 基础部分

Q:谈谈 Object 中常用的方法?「老生常谈」

A:这是一个非常常见的,基础知识问题。对于接触过Java的程序员们,应该不难,至少也能说出 4、5 个方法的样子。主要考察候选人对 equals 、hashCode 的认知程度,以及对 wait 、notify 的用途了解程度。引出接下来的集合、多线程相关问题。

Q:谈谈 Java 中的集合,并简单介绍 Set 如何保证添加元素的不重复?「集合方面,仅以此为栗子」

A:主要考察候选人对集合整体了解程度及扩容机制。并承接上个问题中 equals、hashCode 的应用场景「是不是心怀鬼胎(笑哭)」

Q:谈谈创建线程的方式,简单聊一聊 sleep 与 wait 的本质区别?「线程方面,仅以此为栗子」

A:在面试线程方面的知识时,基本上属于必问的问题。主要考察候选人对线程的熟练掌握程度。并承接上个问题中的 wait 的应用场景。

Q:谈谈 Java 中的 IO 流,及设计模式?

A:主要考察候选人对 IO 流设计模式的应用。如果候选人真回答不上来,会进行引导性提示。

5. 闲聊部分

Q:分布式环境如何保证任务只执行一次?

A:会结合候选人所做的项目变着花样去提问,是不是很鸡贼。主要考察候选人遇到问题时,如何分析问题,有没有解决问题的思路。

Q:如何解决数据量比较大的存储问题?

A:主要了解一下候选人有没有过往的项目经历,有没有相关解决思路。

以上是我作为技术面试官,经常聊到的一些问题,及问题背后的一些想法。还有很多,就不在此一一列举了。

技术面试,仁者见仁智者见智,没有个唯一的标准,程序员面试前做好充分准备,心中才有底气,才能展示出最好的状态,找到属于你的一席之位。同时,也建议面试官们,尽量耐心一点,带好节奏,即使前面一两个问题没回答好,也不要早下结论,万一你错过了一个千里马呢?

最后,现在大环境不好,就业形势也受影响,跳槽一定要谨慎。希望这个文章能帮你们面试成功,预祝小伙伴以后面试顺利,都能找到钱多活少离家近的工作。

关于我:15年以上老程序猿、百人技术团队管理者、游戏创业没赚到钱、写作恐惧症患者的真·四猿外。以前极其不擅长写作,最近决定对着弱点迎难而上,通过写作分享经验、干货。关注我的微信公众号(四猿外),看到更多文章。