阿里头条快手百度美团等大厂JAVA社招面经分享(纯干货)

本篇文章所述的重点包括如下内容:

  • 社招与校招面试的区别
  • 第一轮考察知识点与方向
  • 第二轮考察知识点与方向
  • 第三轮/第四轮考察方向
  • HRBP面试考察内容
  • 社招面试小技巧
  • 日常学习资源分享

社招与校招面试的区别

我们先来说下校招面试。校招面试主要考察的是大家对于基础知识的理解与掌握,数据结构和算法的熟练度。对于项目架构,业务逻辑方面的考察较少。这也就要求我们熟练掌握各个模块的基础知识点。

那么社招面试呢?

社招面试考察的部分包括:基础知识点的掌握,对业务逻辑(项目)的理解以及对未来的职业规划等。

社招面试中对于所做项目的考察,以及根据项目衍生出去的知识点是相当看重的,可能直接决定面试的成败。

我个人总结了下校招和社招的区别:

  • 校招面试看重基础,全方位无死角的考察各位的基础知识点,并且一般考察XXX是什么?XXX怎么实现的?
  • 社招面试对于项目的考察至少占到了一半,2面或者3面会针对项目做一个详细的沟通与了解,包括整个项目的业务架构,技术架构和技术难点和卡点等;
  • 社招面试都是这么考察的,XXX是什么?XXX是怎么实现的?XXX为什么这么实现?也就是说同一个知识点,比校招多了为什么要这么实现?
  • 校招的算法可能会比较难一点,而社招因为看重项目和技术的深度,限于时间,所以算法考察会相对简单一点。

为什么说社招面试中的XXX为什么这么实现比较难?

因为,我们在网上搜集到的资料中,绝大多数都是在介绍XXX是什么?XXX是怎么实现的?唯独没有介绍为什么这么实现,甚至于面试官会问还有没有别的实现方式?或者更好的实现方式?

这就导致同一个知识点,社招面试的难度可能会直线上升。并且我们日常也缺乏思考,喜欢背题,所以导致社招面试表现不佳。

接下来,我们按照社招面试一二三轮所考察的知识点来给大家进行一个介绍。

社招面试:第一轮(生死面)

不知道大家有没有这种感觉?面试中的第一轮才是真正的生死面,至少从我个人经验来说,确实是这样的。即使是社招面试,第一轮依然逃不脱我们前面所学的基础知识点。

如果校招面试考察的是这个知识点是什么?怎么实现的?那么社招面试在大多数情况下都会继续考察为什么要这么实现?

也就是说,我们在牛客刷面经的时候会觉得,你看这个社招面经的水平好低呀,简直就是校招水平,都是一些简单的基础知识点。我们某些同学甚至会膨胀,觉得自己对这些知识点已经熟练掌握啦。

殊不知,社招面试考察的是为什么这么实现?这个问题可不简单,好多知识点已经烂大街了,网上随便一搜,看看就懂了。但是,真正分析其为什么这么实现的深度好文少之又少。社招主要在考察我们是否对一些知识点进行过深入的思考与理解。

接下来,我们来看下一面的具体考察形式和知识点吧。

因为是社招面试,一轮面试官会让我们选择一个自己认为最可以体现自己技术能力的项目进行介绍。在你介绍完项目大概的业务逻辑之后,面试官会让我们说出该项目中的技术难点和技术卡点。(这块其实很难很难,后续介绍)这块项目的介绍与提问大概要花费15-20min左右。

然后就是基础知识点三连问,是什么?怎么实现的?为什么要这么实现?

下边列出这段时间笔者遇到的高频基础知识点。(注意啦!别眼高手低,看着简单,但是你能扛得住三连问吗?)

多线程并发编程:

  • 线程池的构造参数及其含义,如何确定线程池中线程的个数等
  • 定时线程池如何实现的?
  • synchronized,volatile关键字
  • 原子性,可见性与有序性
  • 可重入的锁ReentrantLock
  • ThreadLocal的实现原理
  • AQS底层实现,与ReentrantLock的关系

JVM知识点:

  • 内存区域划分
  • OOM介绍
  • 对象分配与回收
  • CMS和G1垃圾收集器
  • 对象可达性分析
  • 类加载机制
  • JVM调优参数
  • Full GC,Minor GC
  • 对象的栈上分配(JIT编译器)

MySQL知识点:

  • MySQL隔离级别
  • 一致性视图
  • 日志模块:undo log,redo log和binglog
  • 索引结构,回表,最左前缀原则
  • 间隙锁,幻读,MVCC
  • SQL优化实战

Java基础:

  • NIO的实现原理
  • HashMap,HashSet,LinkedHashMap以及ConcurrentHashMap
  • hashcode与equals方法的区别
  • RuntimeException Exception Error
  • 注解的使用
  • 基本数据类型
  • 五种常见的网络IO模型

Spring&MyBatis:

  • Spring IOC和AOP的原理
  • SpringBoot源码解读,启动方式,配置顺序等
  • SpringMVC和Spring父子容器的关系
  • Spring的事务实现方式
  • 如何自定义实现SpringBoot中的starter
  • MyBatis中#和$符号的区别

网络协议:

  • TCP与UDP区别
  • TCP可靠性如何保证
  • TCP网络包分片与重组
  • 三次握手与四次挥手,状态转换
  • SSL握手协议使用的加密算法,非对称加密的缺点
  • XSS和CSRF介绍

Redis&Kafka:

  • redis实现分布式锁
  • redis数据结构类型
  • redis zset实现延时队列
  • 跳表如何维护
  • redis线程模型
  • redis的数据过期方式
  • redis持久化方式
  • 缓存雪崩,缓存穿透,缓存击穿
  • Kafka主题,分区和日志文件的关系
  • Kafka日志压缩和删除
  • 消息队列基本特性

好了,一面的基础知识考察主要是上边这些。这个过程大概20min左右,其实也问不了几个问题,前提是你回答得还不错。

接下来的环节属于“手撕”算法环节。

比较幸运的是,视频面试期间,各大公司基本采用了牛客的在线视频面试方式。所以,我们可以在面试间直接写入可以运行的代码。社招对于算法的考察比较基础吧,

笔者在多家公司的面试中都未曾遇到特别难的算法题目,这里还是简单罗列下遇到的算法题目:

  • 找出多数元素(美团)
  • 最长公共字串 (美团)
  • 单例模式 (美团)
  • 快速排序 (阿里)
  • 查找链表中倒数第N个节点 (头条)
  • 合并k个有序的链表 (快手)
  • 蓄水池 (快手)
  • 自定义实现parseDouble方法 (快手)
  • a+b+c=0 (头条)
  • 二叉树前序遍历 (快手)
  • 二叉树按照前序遍历转换为只有右节点的树 (猿辅导)
  • 按照之字形遍历二叉树 (头条)
  • 保留有序链表中的重复元素,并且只保留一次 (阿里,这个很有意思,感兴趣的同学可以实现下)
    给定一个有序链表,保留链表中重复出现的元素,并且只保留一次,如给定链表1->1->1->2->3->3->4. 结果为1->3。请写出一个高效的算法
  • 使用三个线程分别打印A,B,C,按ABC CBA ABC CBA ...的顺序进行打印 (阿里)

还行,对于有准备的各位来说,这些算法都不太困难。待会在资源分享段落,楼主将会分享自己私藏多年的算法学习节奏,助你备战面试!

一面总结:

社招一面(生死面)容易挂的第一个点,就是刚开始的项目讲解的一般,没有亮点。项目中的技术难点和技术卡点无法表述出来,很容易给面试官一种“这人不行”的感觉。至于基础知识还是得靠我们平时多想想是什么?怎么实现?为什么这么实现?

简单总结一句:讲解一个优秀得项目,面试就通过了一半。

社招面试:第二轮

一轮面试如果通过得话,恭喜你,你的面试其实已经通过了一半。因为一面面试官已经在基础知识方面对你进行肯定,二面面试官得提问方向就相对比较多了。二面面试官得重头戏还是你对项目的理解。

本轮面试会让你继续讲解一个或者多个项目,因为没有了基础知识点的考察“压力”。面试官会对项目进行深入了解,包括其业务架构,技术架构与技术原理等。

大概包括如下的技术点:

  • 项目业务架构,针对项目中各个知识点进行扩展与提问
  • 项目技术架构,技术架构中比如说Thrift的实现原理,nginx相关知识点等
  • 项目中学到了哪些技术?或者之前学到的技术哪些在项目中可以体现?
  • 服务的QPS如何?如何保证服务高可用性?
  • 如何限流,熔断和降级服务?
  • 服务的部署方式,各个集群数据库的同步方式
  • MySQL单表数据量多大?索引结构如何?
  • 上线新服务如何进行压测?
  • 内存泄露的排查方式?
  • 线上接口响应超时的排查思路

当然了,在这些比较开放的问题之外,部分面试官依然会考察一些基础知识点,这个看各个面试官的风格了。但是,二轮面试看重的还是项目技术架构以及你所做的贡献有哪些。(PS.手撕算法我们都统一在前面介绍了,二轮面试也是需要手撕算法哦)

二面总结:

二轮面试考察的不仅仅是基础知识点的掌握,更重要的是实际的业务逻辑能力。如果你可以在回答中表现出自己良好的解决实际线上故障的能力与水平,并且在实际的工作中对一些方向有进行过深入的了解,那么你的面试之路将会顺利许多。

社招面试:第三轮/第四轮

为什么将第三轮/第四轮面试放一起呢?是因为有的公司只有三轮技术面试,而个别公司会有四轮技术面试,大同小异吧,我们这里统一进行介绍说明。进行了最后一轮技术面试,意味着前面面试官对你基础知识的肯定,你的业务逻辑与处理问题的能力也得到了肯定。

本轮面试基本上就是业务部门老大在面试,主要考察的方向也比较固定吧。主要考察的方向包括:

  • 为什么出来看机会?
  • 原公司团队的一些基本情况
  • 项目的简单介绍
  • 开放性的系统设计题目:
    排队系统
    点餐系统
    停车场系统
  • 未来的职业规划
  • 有什么兴趣爱好
  • 你还有什么想要了解的呢?

怎么样呢?是不是感觉比较轻松?所以说,不要害怕Boss面,大老板一般都是很随和的,不会刻意去为难大家的,尤其是在前面轮次已经进行了详细的考察之后。

能走到最后,你的各种能力基本得到了肯定,大Boss喜欢你还来不及呢,怎么会为难你的?当然了,一些面向对象的系统设计,包括各个模块的划分,数据库表结构的设计我们还是得全面考虑,设计出来才行哦,关键得是思路与设计能力。

社招面试:HRBP轮次

恭喜你,如果你已经进入HRBP轮次得面试,那么你离正式通过面试就差一小步啦!HRBP面试主要考察候选人得价值观和上进心吧。主要涉及问题如下:

  • 在原公司得哪一段时间是比较享受的?(注意,这里要说自己的成长!)
  • 为什么现在出来看机会呢?看什么类型的机会?(提升自己,挑战自己等)
  • 同事或者朋友之间如何评价你?(说自己的优点,乐于助人等,热心)
  • 平时如何学习呢?有没有什么技巧?(看书,官网,做项目)
  • 你对我们的业务方向有了解吗?(通过前面面试反问环节,有所了解,大概说下)
  • 你的职业规划是什么? (深度和广度,钻研某个放心,沉淀自己,寻找感兴趣的技术点等)
  • 你的一些优点有哪些?(哈哈.jpg)
  • 目前还在看哪些机会呢?手里还有别的Offer吗?(实话实说,多了去了_)

对,你没有看错,大概就是这些问题,只要我们稍加准备即可应对HRBP面试。

笔者这边是没有遇到HRBP面试淘汰候选人的现象。如果真的遇到了这种情况,那可能是大家前面的技术面试表现不够出色,勉强达到了可要可不要的分数。这个时候,如果出现了更加优秀的候选人,那么即使HRBP面试完成,依然会进行淘汰。所以,我们重点还是要提高技术能力。

社招面试技巧:

那么社招面试都有哪些技巧呢?我认为技巧始终应该建立在实力的基础上。那么如何拥有实力呢?分模块进行梳理总结知识点,在日常的学习工作中,对各个知识点进行不断的丰富与补充。

什么?你没有时间进行总结?没关系,待会我会有干货资源分享,大家只需要在此基础上进行差缺补漏即可。

在拥有了一定的实力之后,我们该如何真正应对面试?这里说几个小技巧(建议)吧。

(1)在面试之前,你需要系统的复习准备相关基础知识点(毕竟一轮面试才是生死面)。

(2)在面试之前,你还需要准备一套自我介绍说辞,深度挖掘项目中的技术难点和卡点。

(3)面试过程中,如果之前没有接触或者研究过,可以直接说,“抱歉,我没有研究这块”,切忌不懂装懂,胡说八道,影响面试表现。

(4)每轮面试的反问环节,我们可以让面试官对该部门的业务逻辑进行介绍。

(5)面试结束后,及时写下面经,尤其是面试中回答错误或者一些知识盲点。查缺补漏,每一轮面试都会有所收获。

PS.再说一个特别特别重要的地方,做一份高质量的简历。

容我说句脏话吧,有些同学呀,本身学历背景就差,还特么的做了一份垃圾简历,你觉得大厂会给你面试机会吗?大厂也是有尊严的好不好?简历都做不好,你还面啥试?请不要浪费内推人和HR小姐姐的时间了好不好?

这里再说个点,在反问环节中,如果面试官很有耐心的给你介绍部门情况和业务逻辑方向,恭喜你,这轮面试大概率是通过啦,好好准备下一轮次面试吧。反之,一句话介绍业务情况,那么你大概率是凉凉了,好好复盘面试,准备其他公司面试吧。

对了,说了这么多。怎么能忘记内推呢?快手内推!

校招/实习内推:https://campus.kuaishou.cn/recruit/campus/e/#/campus/share/job-list/TQjo1SCv%2Fnh8OweMLqMlnQ%3D%3D

直接从这里投递即可,这就是内推,可以看到内推进度哈~

这次的社招面试,笔者也算身经百战,真正拥有了社招面试经历,并且取得了不错的战果,以此可以给大家进行更好的分享,这篇文章大概就说完了,不知道大家有没有一点收获呢?

文源网络,仅供学习之用,如有侵权,联系删除。

我将面试题和答案都整理成了PDF文档,还有一套学习资料,涵盖Java虚拟机、spring框架、Java线程、数据结构、设计模式等等,但不仅限于此。

关注公众号【java圈子】获取资料,还有优质文章每日送达。

file
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354