如何准备Java初级和高级的技术面试

本人最近几年一直在做java后端方面的技术面试官,而在最近两周,又密集了面试了一些java初级和高级开发的候选的人,在面试过程中,我自认为比较慎重,遇到问题回答不好的候选的人,我总会再三从不同方面提问,只有当反复确认能力不行才会下结论,相反,如果候选人给我的印象不错,我也会从多个角度来衡量,以免招进会说但不会干活的“大忽悠”。

如何准备Java初级和高级的技术面试

其实倒也不是我故意要为难候选人,毕竟入职后就是同事,但面试官的职责使然,而且,如果资深的面试官一般也这样。

写到这里,恐怕会吓到一些想要面试的朋友,能力强和能力弱都会被多问,那怎么办?

如何准备Java初级和高级的技术面试

这就是本文将要讲到的主题:如何准备Java初级和高级的技术面试。
一。换位思考下,如果你面试官,你会怎么做

<李>

只能通过简历和面试来衡量,别无他法。如果某位大牛确认能力很行,但面试时无法充分地自证能力,那对不起了,过不了,现实就这样。

<李>

如果面试官由于能力不行,招进来一个大忽悠,那估计会被领导骂。而且再也不会被让面试了,给领导的印象就不好了。所以不能评主观印象,而是会有些客观标准,具体而言,就是从多个方面问些题目,答好答坏就看候选人的。

如何准备Java初级和高级的技术面试

其实一些题目都差不多,但不同能力的面试官问问题的切入点和渐进程度会不同,而且有经验的面试官会挖掘候选人的优势,并能从候选人的说辞中判断候选人是真懂还是忽悠。

二。总体上说下准备面试的几个方面点
记得之前考政治,某个大题10分,分5个点,每个点的标准答案不多,也就一两句话。比较取巧的做法是,涵盖点要全,每个点无需多说,但要说到点子上。相反,如果在某个点做得再多,其它点没覆盖到,只能拿这个点的分。
同理,在面试时,应当综合准备java核心,数据库,框架,分布式等方面的题目。根据我面试的结果,我发现不少候选人走了弯的路,他们或者干脆不准备,准备时可能方法不到位,单准备一个方面,比如只准备了算法题,在这方面回答很好,但其它方面就一无所知了。
所以说,没有所谓的一定能成功的面试秘籍,但有可以帮助提升成功率的准备方法。

如何准备Java初级和高级的技术面试

切记,面试前一定得准备,否则成功的可能性很低,准备时,得综合看各方面的点。至于每个点要到什么程度,后文会讲到。

三。架构方面需要准备的点
初级开发而言,需要让面试官感觉出如下的要点。

<李>

熟悉导弹架构,至少在项目里做过。
这个的说法是,介绍项目时,用一个业务流程来说spring mvc如何做的。

<李>

知道spring mvc中的细节,比如@ autowired的用法,如何把url映射到控制器上,ModelAndView对象返回的方式等。

<李>

最好结合项目的用法,说下你是怎么用AOP,拦截器的,比如说可以通过拦截器拦截非法请求,怎么用AOP输出日志等。

<李>

关于ORM方面,不限用过哪种,但得知道一对一,一多的多,多对多等的用法,以及串级和逆的用法。

<李>

最好知道声明式事务的做法。
如果你要应聘高级开发,那在上述基础上,最好了解如下的知识点:

spring Bean的周期
最好能通过阅读源代码,说下国际奥委会,AOP以及spring mvc的工作流程
最好能结合反射,说下国际奥委会等的实现原理
弹簧引导和弹簧云的一些知识点

四。数据库方面需要准备的点
不少候选人会看很多SQL的技巧,比如选择该怎么写,插入又该怎么写,但仅限于此,不会再准备其它的。
这样就很吃的亏,因为面试官会认为,哪怕是初级开发,SQL语句也该会写,所以这块不会多问,而会问如下方面的问题。

<李>

索引怎么建的,怎么用的?比如我建好了一个索引,在地方语句里写的名字如“123%”会不会走索引,怎么情况下不该建索引,哪些语句不会走索引。

如何准备Java初级和高级的技术面试