字节教育-后端实习【一二三面】
看了很多其他同学的面经,帮助很大,特此分享攒人品,三面都通过了,求hr面快联系我
一面 40分钟
- 自我介绍
-
代码题
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。
每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?
注意:给定 n 是一个正整数 【题很简单,面试官主要看思路 层层递进 】【递归】【递归+备忘录优化】【动态规划】【7的倍数台阶不能上】 -
开放数学思维题
A B C D E 海盗,他们要瓜分 100 个金币。A B C D E,轮流提议,提议的人需要获得半票以上包括半票,不然就会被杀死,下一个继续提议,你是 A 会怎么分配
-
知道哪些存储引擎
-
存储引擎在MySQL这个系统架构的哪个位置
-
事务的特点
-
什么是持久性、一致性
-
如何实现事务 我就回答了MVCC + 一顿猛吹
-
http302,什么时候会用302,问我实际场景什么时候用302
-
问我502 答错了 我答成503了
-
服务器server怎么把cookie设置到浏览器的
-
磁盘转一次要多久
-
数据库索引结构是什么样的
-
我回答B+树,然后问对磁盘有什么优势
夺命追问,我说降低IO次数,问为什么
-
B+树的特点
-
TCP握手 挥手
-
redis的数据结构
-
有序集合是什么 我说了排序,然后问怎么排序的 然后又问有序集合zset的时间复杂度
-
然后问知道哪些http方法
-
然后就 问我有啥问题问他没 这面试官巨高冷
我说面试评价怎么样:如果有后续流程hr会联系你
我说哪部分需要提升、改善:这个不太好回答
二面 60分钟(主要因为代码刚开始审题错了 10分钟写了相当于另一道题)
-
自我介绍
-
实习多久 看你保研了 我说实习到毕业
-
TCP断开连接的过程
-
MSL生命周期怎么控制的,怎么确定MSL的时间
-
拥塞控制
-
粘包 不知道
-
缓存 redis了解了多少
-
快照具体是怎么实现的
-
string怎么维护的 不知道
但是我说我了解了一点跳表,所以让我讲跳表了
-
说下什么是跳表skiplist
-
查询复杂度是多少?一个链表查找的过程是什么样的?跳表是怎么查找元素的?跳表的多级指针,结构是怎么样的?
-
1T文件,每一行都是一个数字,求出现次数最多的topK
-
内存不限制 (我说了堆)然后问堆的插入时间复杂度是多少?
-
如果内存有限,比如2G内存,全部文件放入统计词频,内存可能不够用
见收藏夹 哈希→分治→归并
-
-
做题
-
选择后面的第一个最大元素 [4,3,4,5,1,2] → [5,4,5,-1,2,-1]
-
链表两两反转 In:1→2→3→4→5 Out:2→1→4→3→5
刚开始写错了,写成头尾连接了 1→5→2→4→3 这样的
-
-
提问
- 我问还有下一面:他说没法给你说死,应该很快会有通知
三面 三十分钟
-
保研了,面试是做什么
-
实习多久,不需要提前进实验室
-
面试语言是啥?我说Java,面试官就从Java基础开始问了
-
HashMap put过程
- 追问:是如何判断位置是否已经有元素了,来放到数组里
- 追问:计算哈希值之后,这个位置发现已经有了,我怎么知道是否相等
- 追问:HashMap满了扩容了解吗
- 追问:初始化八个元素,实际初始化空间是多少?
-
面向对象
- 重载和重写的概念辨析?
- 在继承里,子类能重载父类方法吗?
-
设计模式
- 没了解
-
操作系统基础
- 进程和线程区别
- 程序计数器作用,为什么是私有的
-
数据库
- 三范式
- 传递依赖,举个例子
- 那我们平时数据库设计时候要按照三范式设计吗
-
计算机网络
- TCP可靠性说一下
- 怎么理解面向连接的概念,建立连接需要网络中预留资源吗
- 资源是两端机器分配还是整个网络分配
-
Linux
-
查看端口占用
ps -aux | grep
netstat -anp | grep
-
-
算法题 两数之和
升序整数数组,给定整数m,a+b=m,求a+b的对数
int[] array = {1,1,2,3,4,6,7,7,8,9} m = 8
result = 5 1 1 和 7 7 重复,算四对 2 6 一对
看完我代码逻辑,直接说:代码逻辑没有问题,我有没有问题问他,面试结束