Java面试可以从五个方面进行考察候选人
工作经历
1、自我介绍是必要环节,从中可以知道候选人的沟通表达能力、对自身信息的提炼能否做到清晰又准确。
2、对简历写的项目、技能一一深入发问,考察面试者对项目的业务细节、技术架构、场景解决、技术原理是否熟悉。如果简历还有写个人博客、个人开源项目,还可以挑个感兴趣的文章、项目深入发问、考察候选人是否真正理解写的技术、项目。(简历内容不要求多,但敢在简历写了就说明做好被深问的准备,答不好会扣分)
Java相关
这个可以先从简单的开始问、比如抽象类和接口的区别、重写equals方法需要注意的几点等等,再慢慢深入Java并发、Java虚拟机等相关知识,从简单到复杂的好处就可以了解候选人的Java技术达到怎样的水平。
问题解决能力
对候选人的项目提出可能存在的问题,如何解决?
比如项目用到消息队列,怎么解决消息丢失?怎么处理消息重复发送?
比如项目用到Solr,全量索引的时候数据丢失怎么解决?检索速度很慢怎么办?
编程能力
talk is cheap,show me the code,这里可以出两道算法题、这个环节其实很重要、不仅可以考察候选人代码的规范(比如命名规范、边界值考虑、特殊输入、错误处理等等),还可以考察其思维能力
即使写不出来也可以讲一下思路、看看思路是否清晰、是否可以解决问题
系统设计能力
让候选人设计一个系统、比如像抖音的设计,白板上面画出系统的架构图,主要的表结构和讲解主要的业务流程,如果用户变多流量变大,架构将怎么扩展,怎样应对?