清本+海外水硕,连续面了三天,每次55min左右,HR反馈通过面试了,不知道何时收到后续通知
回忆不全
一面
自我介绍
解释OOP
多态的特点
解释和对比虚函数、纯虚函数
解释STL
对比迭代器和指针
解释HTTP和HTTPS
解释HTTPS中的对称加密和非对称加密
解释TCP的三次握手和四次挥手
为什么不能两次握手
解释线程和进程
解释线程的状态,线程锁,产生死锁的条件和打破死锁的方法
解释快速排序,时空复杂度,是否稳定
在单向链表中检测环,记录环的节点数
列举熟悉的设计模式,解释多线程情况下的单例模式
实现二路归并
二面
自我介绍
解释项目,从项目延申出的技术点开始问问题
解释动态链接和静态链接,各自的优势和使用场景
对比一下Rust和C++(项目有Rust)
解释线程和进程
进程切换的流程
如何衡量进程切换的成本(???不知道什么意思)
你是怎么debug并发程序的
解释读写锁
解释堆内存和栈内存,堆内存管理
解释内存泄漏
解释TCP三次握手,为什么不能两次,能不能四次
解释map和unordered map
解释哈希表如何缓解碰撞带来的性能下降
判断字符串去掉至多一个字符,是不是回文字符串
三面
谈论项目,延申出技术问题
对比C++和python,Python为什么比其它脚本语言慢(?)
C++编译的流程,编译的阶段,中间代码优化的方法
解释risc和cisc
递进式开放性技术问题:
结合对OS的理解,描述复制和粘贴的一种实现,怎么实现不同应用间数据的交换,共享内存的风险,解决数据竞争的方法,复制文件的策略,提示考虑Copy on write......
你最常用的手机App(B站),从技术角度看视频卡顿产生的原因,问了一大堆忘了
看见岗位名字有C++就投了,后续被告知要做IOS...
总的来说算法还是考的不难的,二面和三面问了很多从项目延伸出来的技术问题,有点猝不及防
#晒一晒我的offer#