暑期实习。面试语言主要是cpp。附带一些go和py。其实入职有一段时间了,但因为过程有点坎坷后面都懒得记面经了。现在端午稍微有点空就整理一下放出来吧QAQbg:双非本,有一些竞赛基础但没有acm牌子(太菜了),笔试大概是大部分middle随便做的水平。项目是牛客的webserver + MIT 6.824的前两个lab。时间线:3月份开始投递。百度一面挂,美团二面挂(好像是终面),一堆笔试ak但是无下文。沉淀一会后5月初开始陆续收到图森未来,柠檬微趣,杭州默安,南京知能,CVTE,格灵深瞳的笔面试。参加了前面三个的面试,最后加入了图森未来,另外两个都过了一面但由于收到offer了所以二面被我拒了(x百度(因为是第一次面试,非常紧脏,所以问了一些基础的问题就秒挂了。):golang管道怎么用golang的goroutue泄露tcp和udp的区别tcp三次握手四次挥手tcp四次挥手第二次和第三次不能合并吗手写一个单例模式设计模式几大原则手撕单例模式(懒汉模式)手撕二分查找。美团(鸡架,无人机团队):一面:多态和继承在什么情况下使用除了多态和继承还有什么面向对象方法情景题。手机店。不同品牌的不同型号手机有不同的业务逻辑。怎么设计系统tcp/ip五层模型dns服务器用的是什么协议。ping命令 用的是什么协议。在哪一层。tcp拥塞控制实现。模板元编程(简历上写了,但答的不好)为什么要用多线程。多进程可以吗(webserver的)进程和线程的区别。为什么要用线程池讲讲智能指针C++内存分布。什么样的数据在栈区,什么样的在堆区。C++内存管理(RAII啥的)C++从源程序到可执行程序的过程编译阶段的过程(编译原理,词法分析啥的)。每个过程干啥的为什么要用epoll怎么debug,怎么看内存泄漏。聊天二面:epoll实现原理reactor和proactor的好处和坏处。为什么要用reactor而不用proactor能详细讲一下有限状态机怎么解析http报文吗小根堆定时器是怎么弄的。如果一次pop一个的话。高并发情况下会不会有问题如果有两个服务器,一个服务器坏了,另一个服务器怎么判断并接手坏的服务器的用户数据(共用一个堆堆和栈的区别。什么情况下会往堆里放一个对象=另一个对象会发生什么(赋值构造函数)如果new了之后出了问题直接return。会导致内存泄漏。怎么办(智能指针,raii)c++11的智能指针有哪些。weak_ptr的使用场景。什么情况下会产生循环引用多进程fork后不同进程会共享哪些资源多线程里线程的同步方式有哪些后面的基本没有记录,只记得手撕和一些面试的时候卡住/不确定的问题。(主要是懒了)图森未来:一面(coding面):leetcode:694. 不同岛屿的数量。还有一题忘了。八股问题主要是cpp相关。二面:手撕小根堆。手撕智能指针。八股问题忘了。三面:select怎么用。底层原理select为什么只能支持1024个。poll和epoll是怎么解决这个问题的。epoll 底层为什么用红黑树不用hashpy修饰器柠檬微趣:size_of是在编译期还是在运行期确定函数重载的机制。重载是在编译期还是在运行期确定hash表数据很大。rehash的代价很高,怎么办如果解析http请求的时候,用户一次性没传完数据,(如果头部都没传完,请求报文长度字段都没传完,怎么办)杭州默安:主要是面了golang。只记得一些。数组和切片的区别GPM调度sync库用过哪些。golang的协程。py的协程。mysql的隔离级别和锁。k8s,一些其他的sql了解过吗。