Java后端面试标准其实不复杂:第一能干活,第二Java基础要好,第三最好熟悉些分布式框架。 其实,很多面试者能力其实不差,但面试时没准备或不会说,这样的人可能在进团队干活后确实能达到期望,但可能就无法通过面试,但面试官总是只根据面试情况来判断。 但现实情况是,大多数人可能面试前没准备,或准备方法不得当。要知道,我们平时干活更偏重于业务,不可能大量接触到算法,数据结构,底层代码这类面试必问的问题点,换句话说,面试准备点和平时工作要点匹配度很小。 在本文里,将通过一些常用的问题来介绍面试的准备技巧。大家在看后一定会感叹:只要方法得当,准备面试第一不难,第二用的时间也不会太多。 **1. 框架是重点,但别让人感觉你只会山寨别人的代码** 在面试前,面试官会阅读简历以查看面试者在框架方面的项目经验,在面试者的项目介绍的环节,面试官也会着重关注面试者最近的框架经验,目前比较热门的是SSM。 其实我们每个人都这样过来的,但在面试时,如果你仅仅表现出这样的能力,就和大多数人的水平差不多了,在这点就没法体现出你的优势了。 我们知道,如果单纯使用SSM框架,大多数项目都会有痛点。比如数据库性能差,或者业务模块比较复杂,并发量比较高,用Spring MVC里的Controller无法满足跳转的需求。所以面试官一般还会主动问:你除了依照现有框架写业务代码时,还做了哪些改动? 对于这个问题,面试官不在乎听到什么回答,面试官只关心回答符不符逻辑。一般只要答对,面试官就会给出“在框架层面有自己的体会,有一定的了解”,否则,面试官就只会给出“只能在项目经理带领下编写框架代码,对框架本身了解不多”。 其实,在准备面试时,归纳框架里的要点并不难,我就不信所有人在做项目时一点积累也没,只要你说出来,可以说,这方面你就碾压了将近7成的竞争者。 **2. 别单纯看单机版的框架,适当了解些分布式** 此外,在描述项目里框架技术时,最好你再带些分布式的技术。 1. 反向代理方面,nginx的基本配置,比如如何通过lua语言设置规则,如何设置session粘滞。如果可以,再看些nginx的底层,比如协议,集群设置,失效转移等。 2. 远程调用dubbo方面,可以看下dubbo和zookeeper整合的知识点,再深一步,了解下dubbo底层的传输协议和序列化方式。 3. 消息队列方面,可以看下kafka或任意一种组件的使用方式,简单点可以看下配置,工作组的设置,再深入点,可以看下Kafka集群,持久化的方式,以及发送消息是用长连接还是短拦截。 以上仅仅是用3个组件举例,大家还可以看下Redis缓存,日志框架,MyCAT分库分表等。