如何准备一场全面的面试——Java

·  阅读 535

8月份9月份开始面试了好几家公司的Java服务端开发,在此总结一下如何去准备一场面试。

现如今的面试,基本不像以前直接上来就是八股文,而是循序渐进式的发问,一般流程如下:

深挖项目、提问八股、场景题、算法题

本文就从上面的四点,逐个刨析,分析每个节点都应该怎么准备

0. 前言

在分点刨析前,先说几个面试的关键点,

  • 思路一定要清晰,最好分点作答,简明扼要的回答问题,不要说一大堆,否则会让人有种你抓不住重点的感觉。比较好的思路是类似语文上的总分总的回答方式
    • 比如问你MQ如何选型?那么你可以答调研了多个MQ中间件后,我们主要从以下几点考虑选型(总)。第一,从社区活跃度方面,xx社区比较活跃,第二,从源码层面,xx源码是java,开发容易排查问题。第三,从高可用方面,xxx使用了主从等等(分)。最终,我们选用了xx这个MQ中间件(总)。
  • 不会的问题直接说不会,不要瞎猜,但可以合理猜测,前提是告诉面试官你猜测的思路是什么
    • 比如问你mysql的高可用怎么做的?你不知道的话,直接说,这方面的资料我并没有看过,不了解。但是市面上的中间件的高可用方式有共同点,我觉得mysql的高可用方式应该也类似,我可以讲一下我的想法吗?这个时候面试官一般是感兴趣的,那么你就可以开始你的表演了,比如类比到redis,使用sentinel做高可用,类比到rocketmq,使用dledger做高可用,那么mysql应该也是有一个组件作为协调者,从slave中选出master等等,靠你自由发挥了
  • 回答问题最好连贯,不要断断续续,想好方案再作答,抓大放小

总结一下,其实就4点,思路清晰、作答连贯、简明扼要、不会就坦诚,要记住,这四点贯穿这个面试过程

1. 介绍自己

一般开始面试前,面试官都要求你先简单介绍一下自己。其实这个介绍自己的过程中,面试官主要想考察你什么呢?我认为是一下几点

  • 面试官:我简历还没看过呢,趁着这小伙子介绍自己的过程中我看看简历
  • 看看这小伙子的谈吐是否有条理,思路是否清晰

因此,自我介绍时,可以大概讲讲你的履历,将自己比较有亮点的项目放到最后,毕竟前面的内容面试官在看简历不一定会听到,等他看完了刚好听到你后面讲的内容。这部分内容最好控制在2分钟左右。

2. 深挖项目

作为社招,就是要看你做过什么项目,有什么样的经验。项目其实不需要多高大上、也不需要多高的并发,而是可以通过这个项目,让面试官得到抓手(怎么阿里味的感觉?)去切入八股。这部分最经典的问题是:

  • 挑一个简历上你最熟悉(或最有挑战)的项目,说说业务流程是怎么样的?
  • 这个项目部署了几台机器?
  • 这个项目有什么亮点或者难点吗?(这里面试官在找抓手切如八股了,你可以往你熟悉的方向上靠,比如分布式事务、分库分表等)
  • 表结构是怎么设计的,有哪些字段?(确认你真的做过这个项目而不是编的)

上面只是几个问题,其实还有很多问题去深挖到项目细节,这里就不一一列举了。我想说的是,我们怎么去准备项目,以不变应万变呢?

变态的面试官会问特别细节,所以,你需要有一个项目(一个就够了)了解得特别熟悉。以下几点你去做出来再去面试吧,比如一个订单微服务项目。

  • 画出项目的物理部署图(从网关到微服务)和业务模块图(各个微服务模块等)
  • 项目部署了几台机器,怎么做限流熔断降级,可以结合部署架构图讲讲
  • 订单服务的相关表有哪些,有哪些字段,数据量大概多少
  • 每日订单量多少,峰值qps多少
  • 项目用了哪些中间件,用这些中间件是否遇到了什么问题?怎么解决的

3. 八股文

八股文主要往两方面去准备

  • 关键项目的八股文,比如你跟面试官讲的项目,这里面涉及的八股文最好要精通一点,因为主要问的就是这方面的内容
  • 其他八股文,当然也要会,不乏有些面试官是面完项目之后,直接上八股文一个个来考察的

4. 场景题

场景题出的比较多的,分为几类。建议自己搜索相关题型的解法进行总结归纳。每一类问题最好总结出主要解决的难点在哪里,怎么解决,比如:

  • 海量数据题,可以看看这里,juejin.cn/post/684490…
  • 抢红包,需要解决红包金额和高并发问题
  • 粉丝打赏,需要解决高并发和主播账户热点数据问题
  • 短链接系统设计,主要解决id的长度问题和并发效率问题

5. 算法题

算法题需要长期准备,如果在职最好每天没事的时候刷刷题,不建议盲目刷题和刷每日一题,这样性价比不高。建议在codetop.cc上刷高频题。分三步走。

  • codetop.cc上刷高频题,只刷频度大于40的,40自己定义,也可以刷大于50的
  • 刷leetcode hot100,建议对比codetop上的题,hot100有些题考到的频度并不高,建议放弃这些题
  • 刷leetcode 剑指offer,建议对比codetop上的题,频度太低的题建议放弃

总结就一句话,以codetop为中心,性价比刷题即可。刷完上面的题目后,可以做个总结,比如将不同题归类等,类似如下。

image.png

当刷题到你看目录题目就知道这道题该使用什么方法,大概怎么写,那么基本上来说,面试的算法题就难不住你了。

大佬复习:

1948dcc38106a47ee745912aedf5a7c2.jpg

我的同学复习:

2e6480c24eda61e39f3b26f159e711cd.jpg

我复习:

d64a9dff1e766b4648410291e6e9ea10.jpg

如果遇到变种题,那么就需要自己开动脑筋解决。如果遇到冷门题,那就认命,可能面试官并不想要你,你进去也是背锅,或者就是你八股文没答好,出一个难题劝退你了。

以上,就是我的总结了,希望对你有所帮助。

分类:
后端
分类:
后端