实习春招结束,记录下面经回馈牛客,希望能帮到大家
由于一些面试年代过于久远,而且大部分问题都是相似的背诵题,楼主只能写出一部分印象比较深刻的,所以内容会偏少。大家见谅
快手
一面
进程切换上下文细节
线程切换上下文细节
不同进程是如何保证使用的内存互不影响
c++智能指针多线程下为什么会影响性能?(这个问题有点懵逼,面试官后面从体系结构解释了blabla,但依然不理解)
epoll相关基础问题
锁的种类及作用
手撕代码:用两个互斥锁实现读写锁
手撕代码:链表去重
二面
了解c++哪些新特性
tcp里time close 和 time wait状态什么意义
shared_ptr 原理
weak_ptr 原理
场景题:TB级别数据怎么做排序
手撕代码:分解质因数,输出类似10=2*5这样
拼多多
一面
redis原理
浏览器输入url后过程
linux中零拷贝作用和原理
epoll基础问题
b树和b+树区别,作用
场景题:数据库cpu跟不上请求频率,应该如何优化?
二面
(这面试没啥特点,想不起细节了)
手撕代码:要我把简历的项目里一个百来行的子模块现场写出来(觉得有点丧心病狂了)
三面
(这面试也没啥特点,就记得一个问题)
udp如何实现可靠传输
手撕代码:两个队伍PK,每个人随机出场,随机攻打对方队伍一人,随机闪避或者掉血,问若干回合后双方存活人数。把过程模拟出来即可
字节
一面
tcp可靠传输原理
tcp快速重传和快速回复意义
epoll基础问题
手撕代码:将c风格的字符串的'%'字符替换成“333”字符串,要求不额外申请空间。例如ad%e% 变成 ad333e333
二面
如何让一段代码如何在main函数执行前执行(觉得这个问题挺有意思的)
static关键字修饰意义,被static修饰的变量存储区域
epoll相关基础问题
手撕代码:长度为n不重复的数组,从最小的数字开始算,找到第一个不连续的数字。要求O(n)时间复杂度,空间复杂度尽可能小(不允许使用stl里的unordered_map,面试官表示这类哈希查询不保证一定O(1))。例如4 5 9 8 输出6
三面
实验室项目谈了很多
端口号,icmp协议分别位于哪层
traceroute原理
手撕代码:给定数据基合,问对于一个数N,从集合中选出若干数使其和为N,每个数字可以反复使用,问共有多少种组合方法
腾讯
一面
进程间通信方法
系统调用执行过程
用户态内核态切换过程
tcp拥塞控制原理
流量窗口意义
tcp可靠传输原理
手撕代码:买卖股票问题,就是leetcode上原版问题
手撕代码:给定一个无序数组,找到数组中任意一个极小值,要求复杂度尽可能小
二面
了解c++哪些新特性
c++中auto_ptr 缺点
c++中share_ptr 原理
c++中tuple原理
哈希原理,有哪些方法可以解决哈希冲突
场景题:有一个tb级别字符串集合,给定一个字符串,如何查询该字符串是否在基合中出现过 (使用布隆过滤器)
聊家常