2020.2 Java 社招面试整理

Wu Jun 2020-03-06 10:06:34
21 其他

2020 年春节后回到北京,准备开始找工作,因为疫情影响,整个 2 月都是在家上班,这也给远程面试提供了便利,免去了请假的尴尬和奔波的麻烦。

年前就准备开始面试的,但总以为需要刷很多题,一直没时间刷就一直没行动。幸好临近过年有一个同事要离职了,他跟我传授经验,让我先面小公司积累经验,之后再去面大公司。我受他的鼓舞,终于决定了在年后踏上面试之路。

根据同事的经验,我修改了“脉脉”上的的状态,切换到“找工作”。然而还没来得及找小公司“练手”,就被各种猎头消息淹没了,于是就走上了面试之旅(不是脉脉软文啊……)。

事实证明“练手”真的很有必要。我一共面过阿里、蚂蚁、字节、Shopee、OPPO、华为、美团、快手、猿辅导、腾讯,城市涉及成都、北京、深圳。一开始我连自我介绍都不会,所以前面面的阿里、蚂蚁、字节、Shopee 都跪了;中间面的 OPPO、华为面了一半失去音讯;后面面的美团、快手、猿辅导、腾讯都过了。吐槽一下华为,机试的时候试题都能出错,后面重试的时候全部 AC 也能判断我机试挂掉……还有 OPPO,两面面完发了一个邀请函,不知道干什么用的,问了内推人也没有了后续。

这些公司每家偏重点不同,难度也不同,有的中规中矩,有的挖尽细节。事后总结了一下,大体都能分为下面列举的 7 个问题,列出来跟大家分享一下。

补充一下,我是 16 本 Java 社招,项目问得比较多,可能是我比较菜,问到的算法 easy 居多,最多出现个 medium。下面也没分一二三四面,没分公司,就是提取了共性。

1 自我介绍

远程面试,视频接通后,面试官可能会简单介绍下自己,然后就直接让你做一个自我介绍,这个没有例外。

我一开始心里想这不都是简历上写着的么?后来感觉可能是考察你的表达能力吧。这个时候说说姓名、学校、专业、毕业时间、工作经历、主要项目、技术栈,应该就差不多了。

说完之后,有的面试官会认真听,并且就你说的找他感兴趣的问你,当然也有的面试官就走个过场,你说完他就不管了,直接问下一步。

1.1 工作经历

通常说到工作经历的时候,会问你:

最好别老抱怨之前的公司,可以说说自己的规划之类的。

1.2 项目经历

说到项目经历的时候,有些面试官会从你说的当中跳他感兴趣的问你,所以自我介绍的时候可以有倾向性的说说你比较拿手的项目。

1.3 未来规划

我在被问到这个问题的时候通常是一头懵逼,因为我之前没有好好想过,大家可以准备一下。

1.4 日常行为

2 最有挑战的项目

自我介绍之后,如果面试官没有从你说的项目里主动问你,一般就会让你自己选一个项目说。

通常问法是:

这一块因为每个人都不一样,所以不细写了,但是很重要。社招项目问得是比较细的,事前好好准备一下吧,不要像我一样说到自己做的项目,因为时间比较久了,有些细节都忘了。面试前将自己做过的项目再熟悉熟悉。

3 基础知识

基础知识这块是跟你简历上提到的技术栈相关的,每个人不一定相同,但 Redis 和 Kafka 都是没有被错过的。这一块就是考察你掌握是深度了,不一定全都要了解到底层,每家要求不一样。

3.1 Java

1)基础
2)集合

集合这块关注一下 1.8 的实现吧,和 1.7 相比变化了很多

3)并发
4)IO

IO 这块我不熟,没有多讲

3.2 JVM

1)内存与 GC
2)异常与调优
3)类加载器

3.3 Spring

3.4 MySQL

3.5 网络

3.6 Redis

3.7 Kafka

3.8 分布式

3.9 微服务

3.10 设计模式

4 算法题

基本都会问时间复杂度

5 系统设计

6 你有什么想问的?

7 Offer 选择

补充一下 offer 情况,最后拿到了美团基础架构、快手主 app、猿辅导斑马、腾讯 csig 的 offer。面试前的“练手”还是很重要的,前期“裸面”浪费了阿里、蚂蚁、字节、Shopee 的面试机会。所以开始面试之前一定要准备好啊,不然也是耽搁面试官和自己的时间。

最后接了腾讯的 offer,要去南方啦~