头条,小米,滴滴社招后台面经

楼主毕业一年,而且是跨行做后台,没有实际项目经验,所以问的东西比较基础,分享给大家,如果有后续会继续更新,共勉。

头条:

一面:

1.讲一下之前做过的一个项目,项目没什么难度,所以没有深问

2.JVM内存模型

3.堆是一个什么样的结构

4.CMS垃圾回收的过程

5.CMS垃圾回收过程中会有几次STW的操作

6.根集包括哪些对象,为什么这些对象会作为根集对象

7.解释java中的锁升级

8.解释可重入锁的概念及原理

9.解释自旋锁的概念及原理

10.volatile关键字的使用场景及作用

11.mysql索引的数据结构,为什么用B+树而不用B树

12.解释mysql的聚簇索引和非聚簇索引

13.hash索引

14.mysql深分页怎么优化,不能分表分区

15.redis的持久化储存有哪几种,各自的特点

16.如果redis崩溃,rdb和aof选用那种进行恢复,为什么

17.redis怎么做分布式锁,有几种方法,redis作为分布式锁有什么优势

18.爬虫(简历有写)中数据怎么去重,如果超大数据量不借助外存又怎么去重

19.算法:寻找a字符串中完全包含b字符串的最短子字符串

二面:

1.kafka里边有几种基本角色,每个角色具体职责是什么

2.kafka里怎么保证高可用性

3.kafka里的rebalance是怎么回事,怎么触发

4.做的游戏里的设计模式有哪些,介绍一下

5.mysql里的聚簇索引和非聚簇索引,区别,使用主键索引和非主键索引查询时有什么区别

6.mysql里的事务隔离级别,具体含义,分别解决了什么问题

7.redis里的事务,与mysql事务的区别

8.手撕算法:一棵树,求最大同源路径(leetcode 687)

三面:

1.介绍游戏里自己负责做哪一块,有什么亮点

2.游戏服务器怎么提高自己的可用性

3.游戏怎么防外挂

4.select,poll,epoll,epoll的优势

5.redis的ziplist数据结构,越详细越好

6.redis复制的过程越详细越好

7.python的gil锁,什么时候会触发gil锁

8.进程和线程的区别,linux切换进程线程时具体做了哪些操作,越详细越好

9.协程了不了解,为什么轻量级,对比进程线程讲一讲

面试体验:

面试体验的话,感觉头条的面试官比其他两家的面试官要稍微严肃一点,难度也比其他两家大一些,不过终于还是给了hr面,希望能有一个好结果吧
另外,一面联系我的hr小姐姐声音真好听2333


小米:

一面:

因为我是跨行,面试官表示不知道问什么,面试大概如下:

1.你研究生时候发的论文讲一下吧

2.做题吧:

a) 二叉树,找距离最远的两个结点的距离

b) 一个二维地图(数组),每个格子的权重不一样,求从左上角到右下角的最小权重

c) 用java实现一个迭代器,然后讲了讲在并发的情况下需要怎么改进

二面:

面试官表示自己也是游戏跨行来做后台的,好吧,其实我目前是做游戏研发的

1.聊了一些目前做的游戏里的逻辑实现

2.java里边常见的垃圾回收器和垃圾回收算法

3.cms垃圾回收器跟g1垃圾回收器的区别

4.对比cms,g1垃圾回收器的优点有哪些

5.python里的垃圾回收机制是什么样的

6.大概介绍了一下自己了解哪些互联网后台的技术栈,到什么程度

7.做题:

a) 一维升序数组,定义一次左移为取数组最左侧的一个元素,将其放到数组的最右侧,现在给一个左移n次后的数组,求n,要求时间复杂度logn

b) 定义树的平均高度:树根结点到所有叶子结点的距离n的和,与所有叶子结点数量的比值,现在给一个root节点,求它的平均高度

面试体验:

小米的面试还是比较简单的,面试官人也很nice,说话都很实在,另外,一面的两道题应该是leetcode原题,二面的题应该是剑指offer上的吧,希望能进下一面吧…
等了两天没有等到小米三面的通知,大概是凉了,明明感觉自己应该都答上来了的,随缘吧= =


滴滴

滴滴的面试比较早,当时也没有记录,所以很多问题记不清了(尤其是一面= =),只挑一些还记得的写在这里吧

一面:

1.数据库索引结构
2.netty里的零拷贝介绍一下
3.概率题(数学期望):
    a)52张扑克牌,花色牌和黑色牌各26张,一次性抽两张牌,求两张牌同花色的概率
    b)一个岛上的人,如果生出女孩子就会继续生,一直到生出男孩子为止,求最后岛上的男女比例
    c)三国杀的甄姬,从期望计算,使用技能时候能多抽几张牌
4.手撕算法:求树的两个结点的最低公共父节点

二面:

1.java的垃圾回收器和垃圾回收算法,了解哪些,讲一讲
2.java的有哪几种线程池,线程池有哪些参数
3.写一个sql,大概是分组后根据某个字段的和进行排序,取最大的几条结果
4.手撕算法:
数字用倒序的链表表示,比如12345会被表示成 5>4->3->2->1
现在有两个链表,求这两个链表表示的数字的和的链表
思路是这个,具体题目怎么叙述的记不清了,应该是leetcode原题吧

三面:

1.介绍自己项目里的亮点
2.项目里遇到了哪些问题,怎么解决的
3.红球白球各有五十个,放到两个盒子里,从中随机取一个盒子,再从盒子里随机取一个球,现在希望取到红球的概率最大,应该怎么放
4.估算一下抖音每天用户上传的短视频数量
5.手撕算法,用两个栈实现一个队列,并设计一些测试用例,说明设计这些测试用例的原因

面试体验:

滴滴最后三面凉掉了,还是挺可惜的,不过面试体验很棒,应该是三家里边最棒的,有答不上来的问题面试官也会安慰说没关系没关系,我们看下一个问题,而且第一次面试就面到了三面,给了我很大的信心。
我自己也很感谢滴滴的,没有滴滴三面给的经验,头条的三面大概率也不会过了= =


其他

最后,批评一下京东的hr,面经就不写了,一面凉凉。
因为我是在网上挂的简历,看谁联系我再决定是不是给对方简历。
其中有京东某部门的hr,在我给她简历之后很快就安排了面试。
结果面试体验很差,面试总共不到半个小时。
我本来投的是后台相关的职位,但是面试官全程在问我游戏相关的问题。
比如说游戏的寻路算法,游戏的服务器架构等等
完了告诉我说他们更需要一个经验丰富的同学,我的工作经历和他们不匹配……倒是没拖着,直接挂掉了。
真的挺无语的,要是说工作经历不匹配直接简历挂掉不就好了。
感觉上是被hr拿去刷绩效了,吃一堑长一智,大家尽量有内推还是走内推,至少不会被恶心到吧。

目前头条给了hr面,内推的朋友的说差不多稳了,如果能拿到offer我会直接去,所以上边应该就是我这次社招全部的面经了,我大概是从去年10月份开始准备,到现在4月份的话刚刚好半年,    其中感觉比较有用的内容大概如下吧:
1.Redis实战(全书都看了
2.Kafka权威指南(前7章看了两遍吧
3.从paxos到zookeeper(从其中挑了几章讲原理内容看了看)
4.大话设计模式(迅速地过了一遍)
5.java并发编程实战(大概看了一遍,没看懂= =
6.高性能mysql(这个其实最近没看过,毕业前看的,到现在仍然觉得受益匪浅
7.流畅的python(看了两遍
8.圣思园张龙jvm虚拟机教程(b站,现在貌似被删了
9.圣思园张龙netty并发编程
10.王道考研的操作系统视频(b站
11.张铁蕾的redis底层数据结构分析跟redis和zookeeper分布式锁比较(掘金上边的,看了好几遍,突击复习很有用
12.github上的面经大礼包(CyC那个

社招还是很辛苦的,不仅准备的时间不够充分,而且请假并不方便,面试只能安排在晚上,一天只能面一家公司一轮,对于一些晚上不方便面试的公司就不得不选择放弃,就我目前的了解的情况来看,今年因为疫情社招竞争程度相当激烈,所以尽量不要裸辞,业内认识的leader说他们那边的核心团队,真的是百里挑一,面试从早上排到晚上,推荐我的10月份再投,竞争压力估计会小很多。就我个人目前的情况来看,如果头条能过的话就去,过不了或者因为疫情不好进北京或者出了其他幺蛾子,就再试试美团跟阿里,都不行就再耐下心来学习,积累更多的东西,十月份再战。

最后,祝愿我自己顺利,也祝愿大家都能拿到满意的offer吧。

#字节跳动##社招##面经##Java工程师##小米##滴滴#
全部评论
楼主过了吗?😂
点赞 回复 分享
发布于 2020-04-11 10:45
m
点赞 回复 分享
发布于 2020-04-11 12:40
楼主面哪个部门?
点赞 回复 分享
发布于 2020-04-12 21:47
感谢分享! 欢迎大佬参加我们的社招面经征集活动呀!有京东卡可以拿~社招面经征集|参加过社招的牛友,来发面经吧,拿京东卡~:https://www.nowcoder.com/discuss/374207 #社招面经#
点赞 回复 分享
发布于 2020-04-13 19:21
请问楼主需要笔试吗?
点赞 回复 分享
发布于 2020-04-13 19:55
最后去字节了吗?
点赞 回复 分享
发布于 2020-05-24 14:32
本科还是研究生?跨行指的是?
点赞 回复 分享
发布于 2020-05-24 15:04

相关推荐

喜欢走神的孤勇者练习时长两年半:池是池,发是发,我曾池,我现黑
点赞 评论 收藏
分享
评论
12
126
分享
牛客网
牛客企业服务