国内各个厂面经
本人21届渣硕,也算国互联网大部分都面过了,答应群友发一下面经,非互联网和小厂就不发了,有些面完就发到博客了所以会详细一点,有些面完没记录可能存在遗漏,大家酌情参考。
答案和经验后面都为大家整理成文档,但我不建议大家直接去看,大家可以先看前面的真题,自己看完在脑海里做一做看自己能达到一个什么水平!
全部的面试题内容和答案都整理在文末了
腾讯(后端)
一面(30分钟)
-
TCP三次握手四次挥手 及状态转移过程
-
Http和Https的区别 主要S的过程
-
算法题:求最大质因数
-
redis的数据结构和具体实现方法
-
i++语句 系统实现过程
-
ACID和隔离级别
-
算法题:链表判断环及求环的位置
二面(40分钟)
-
聊项目
-
redis分布式实现原理 三种分布式 以及哨兵模式 一致性hash
-
分布式锁的实现
-
redis ziplist的条件
-
c语言相关的(好像是字符串复制函数(忘了))
-
大量数据小内存求中位数
-
算法题:手写快排
百度(数据研发)
一面(50分钟)
-
聊项目
-
spark 常用算子介绍
-
spark shuffle流程
-
数据倾斜及解决方案
-
map join
-
广播变量
-
智力题:3个人 3个帽子 红红蓝 红红红 蓝蓝红
-
第一次大家都不知道,第二次有个人知道了
-
必定的分配情况 红红蓝
-
sql:求7日留存
-
算法题:有序矩阵求目标数值(leetcode 240题)
-
XGB和GDBT区别
-
XGB做了哪些改良
-
XGB对缺失值的处理
美团(大数据)
一面(70分钟)
-
聊项目
-
各个排序算法和复杂度(让列出10个)
-
Http和Https的区别
-
Spark和Hadoop的区别
-
聊项目
-
每个语言(c go python java)的循环控制语句
-
存储介质由慢到快
-
反问
二面(50分钟)
-
为啥没有实习,对数据开发的看法
-
秋招为啥没有offer
-
介绍hashmap,为什么要数组加链表 为什么要转红黑树,为什么要是2的n次方
-
还是hashmap 为什么不能直接equal要先hashcode
-
为什么要重写equal
-
b+树和b树的区别
-
ACID
-
Mysql如何实现可重复读
-
聚集索引和非聚集缩影
-
什么语句能用到索引,索引如何优化
-
问项目,为啥这么架构
-
Spark shuffle流程
-
做题:有序链表交叉重构,常数空间。
-
反问
字节(大数据)
一面(50分钟)
-
做题:求数组波峰
-
优化为二分查找
-
做题:二进制相加
-
做出来让优化 (然后没想出来,应该是异或和与的操作,力扣有原题)
-
聊项目
-
2道困难SQL(没做出来)
-
XGB的原理
-
Kmeans的原理
-
Kmeans和KNN的区别
-
无监督和有监督学习的各自优缺点
-
反问
滴滴(大数据)
一面(50分钟)
-
聊项目
-
TCP和UDP 三次握手 TCP状态转移
-
HTTP和HTTPS 区别和S多的流程
-
Tcp和http的关联与不同
-
Kafka 和 RocketMQ的区别
-
Spark rdd介绍, shuffle 过程介绍,血缘依赖 rdd和dataset的区别
-
redis的各个数据结构和实现方法
-
redis分布式的实现方法
-
做题:忘了,应该是个中等题
-
反问
二面(60分钟)
-
聊项目
-
大量数据(存在重复),小内存,统计重复个数
-
说思路然后在面试官提示下优化
-
聊kafka 分配原理 分区存储和broke相关
-
聊分布式相关 key的hash原则,一致性hash等(有些忘了)
-
做题:大数相加
-
情景题:
-
如何用DBSACN确定司机的划分区域
-
滴滴业务介绍。
-
反问
三面(35分钟)
-
对数据开发的看法
-
各个排序算法
-
程序内存空间如何分配
-
http和https
-
情景题:合并单号 并用算法实现 然后优化
-
反问
四面(加面40分钟)
-
聊项目 并详细问各个技术的使用情况和为什么使用
-
问抗压能力
-
闲聊
小米(算法平台)
一面(15分钟)
-
做题:二叉树的左视图
-
然后问如何优化写的算法。
-
聊项目
-
聊常用哪些算法(然后直接结束了)
二面(40分钟)
-
聊项目
-
做题:反转链表
-
XGB和GDBT区别
-
ROC,AUC,准确率,召回率计算公式
-
树模型调优方法
好未来(大数据)
一面(50分钟)
-
聊项目
-
hive:内部表,外部表 ,数据倾斜及解决,锁表
-
spark:reducebykey和groupbykey的区别
-
flink:如何保证一致性
-
说了一下check和barrier
-
sql的索引及区别
-
说了一下聚集和非聚集
-
innodb和myism简单说了一下
-
做题:左上到右下的消耗最小
-
sql:求七日连续登录的人
-
反问:业务内容和评价
二面
-
操作系统如何工作(懵比)
-
然后问如何进行内存管理和文件管理,进程管理
-
讲一下hadoop这些分布式如何实现
-
讲了一下主从复制和选举(谷歌三大论文里面的一些知识)
-
讲一下RDD如何实现分布式的
-
做题:数组的第二大数
-
Kafka如何实现分布式
-
讲了一下broke和partiton 感觉面试官不太满意
-
让手写网络编程 实现服务 对redis的各种数据结构调度
-
反问哪些方向需要提高
携程(数据开发)
一面(30分钟)
-
聊项目
-
问算法,逻辑回归、和svm的计算流程
-
xgb的特征重要性计算原理
-
项目其他的算法问题
-
数据库索引:聚集索引和非聚集索引
-
做题:两个数组求交集
顺丰(大数据)
一面(40分钟)
-
java 多态概念,抽象接口和抽象类
-
java hashmap及底层原理
-
java sleep和wait 哪个会释放资源
-
做题:二叉树左视图
-
一个无序堆,变成大根堆时间复杂度
-
Spark RDD和dataframe,数据倾斜及解决办法。
-
Spark 内存模型
-
减少并行的task数量能否减少内存压力
我的面试经验分享(超详细)
首先基础这一块是绝对不能落下的,所谓万丈高楼平地起就是这个道理,包括mybatis,springboot,springmvc,甚至springcloud这些都是需要基本掌握的,我的话是选择视频的方式学习和复习,大家如果也有这一方面的需求的话,我这里视频也可以分享给大家!
数据结构与算法
然后就是刷算法题,算法刷题我认为在面试比例中还是占据很大一部分模块的的,我刷算法一般是先看视频,看完之后再自己去刷,这样印象和理解都效果比较好!
刷八股文
这个东西相信不用我说大家也知道他在面试中的占比了,几乎不管你去哪一家面试都会问到,怎么积累经验呢?我的回答还是刷题,自己刷+看视频讲解,坚持几个月相信你都会惊讶自己的改变!
刷面试题
这个我一般都是选择在面试的前几天去牛客上面去看,上面还是有很多大佬总结的非常透彻的,当然,你要是比较偷懒的话我这边整理了一套2021头部互联网公司的面试题,都是视频的形式讲解,算是比较好理解的了!
看书
这是最原始也是相对来说比较高效的学习方法了。看什么书,这是针对自身情况来的,自己需要补充什么相信你绝对比我清楚!当然如上所述,你要想偷懒的话,我这里也有一套150集阿里巴巴开发手册最新版(嵩山版)视频详解,不管你是萌新还是大佬都可以选择看看,有需要的自取!
自己总结的面试题
这么多年面试了这么多家公司,自己平时又有喜欢做笔记写博客的习惯,我这里已经积累了大量的一线大厂面试题,都是我自己记下来然后标注自己的理解和回答,完整版我已经整理成PDF文件了,文末自取
最后
分享一点心得吧,不管你是跳槽,还是找工作,又或者是实习,你可以永远把你这一次面试当做最后一次面试去对待,不要想着自己这里还有退路,那里还可以再面,这样只会影响你的发挥,认真对待每一次面试,是对自己负责也是对自己面试的公司负责。最后,祝愿在找工作的你面试成功拿到满意的offer,不需要找工作的你工作顺利,事业有成!!!