2021春招面经
笔主研二,这一个月在找暑期实习,参加了阿里钉钉,阿里云,美团,腾讯,字节跳动,cvte,深信服等公司的面试,现在已经拿到了腾讯和阿里的offer,这个过程有失有得,我就简单分享一下自己的经验。大部分公司都是二面+HR面,部分公司和岗位会采取3/4面+HR面的方式
互联网面试需要哪些东西?
那么,互联网面试需要准备哪些东西?
首先,一份合格的简历。排版,内容至少看得过去,有比赛项目最好,没有自己的项目那就去做开源项目,把开源项目吃透。
其次,基本的IT知识素养。面试官常问的无外乎是计算机网络,数据库系统,操作系统以及语言(c++或java,根据面试岗位和你自身简历待定),上述这三个可以说是面试的三板斧,千万不要说某一样没有学过,老师没教就去找资料学习。前期建议看书但是不深挖,而后结合网上其他人的资料继续深挖,总结一份自己的面经。你总结的面经就是你的面试宝典,等这段时间实验室项目做完了我会把自己之前总结的面经发出来,供大家参考。
再次,不俗的算法功底。这个就是常说的刷题,建议新手先刷剑指offer,第一遍肯定很难受但是坚持下去,结合书本自己手敲代码,第二遍尽量不参考题解自己写。而后可以开始刷leetcode,这里推荐一个公众号,labuladong,我个人觉得这个对新人比较友好。
再次,其他的东西。面试有很大的运气成分,有的面试官喜欢问项目,有的喜欢问基础,还有的喜欢问智力题,场景题,这就需要你在空余时间进行积累。
最后,丰富的经验。我强烈建议你在这段时间去投一下某些公司的日常实习(牛客网校招实习板块),去体验一下面试的感觉,面试必须以面养面,只有这样你才会发现,面试就那样而已,跟考试没什么区别,只要自身素质够硬,甚至很简单。
面经汇总
接下来看看互联网公司一般都会问什么问题。
阿里一面&CVTE&深信服一面
注:这三面连在一起,分不清哪个面试哪些了···
自我介绍系统调用跟中断有什么区别联系?Linux常用的系统调用有哪些?线程有独占的资源嘛?什么东西?智能指针你知道有哪些吗?autoptr有什么缺点?为啥会被舍弃?uniqueptr知道吗?有什么特点?可以复制吗?内部怎么实现的?tcp的重传机制了解吗?能不能讲讲快速重传吗?拥塞控制和流量控制了解吗?两者分别处理什么情况?虚函数表了解吗?存在哪的?为什么(移动拷贝赋值)构造函数不能是虚函数呢?为什么析构函数需要时虚函数?静态成员函数有什么特点?如果两个线程交替打印string a b ?会不会出现字符乱序?字符输出不全?怎么解决呢?那如何让这两个线程安全打印?atomic了解吗?它底层是怎么实现的呢?知道tcp沾包和半包吗?怎么造成的?在接收方怎么解决呢?可以说一下管道吗?怎么实现的呢?是否堵塞呢?是否有大小呢?可以两端同时写入吗?tcp和udp有什么区别吗?tcp可以一对多吗?udp可以一对多可以多对一吗?可以多对多吗?timewait知道吗?这个状态主要是来干嘛呢?为什么2msl呢?这有什么弊端,如何解决呢?深度学习相关的一些问题(项目相关)cmake和make知道吗?有啥关系?交叉编译会吧?怎么实现?new和malloc知道吗?new跟malloc有什么区别吗?野指针知道吗?怎么造成的?应该怎么避免?vector和list的底层实现了解吗?hash表知道吗?如何解决hash冲突?用什么数据结构实现100万级别的数据量的毫秒级访问?冷热数据?hash因子多大合适?会不会内存占用太大?求从0到(x,y)到的走法,怎么实现?统计学怎么计算呢?linux比较熟悉是吧?那怎么实现对一系列文件的进行文本匹配呢?cat只是单文件,多文件是什么?arp协议有什么用?有什么缺点呢?socket编程知道吧,讲讲你的理解?怎么调试程序呢?windows和linux?new分配内存失败会怎么样?算法题,一堆数字中有若干个0,如何将0给移动到最前方并且其他数字的顺序不变?算法题,找到一个乱序数组中的重复数字和缺失数字。
阿里二面
自我介绍堆栈的数据结构是什么?mqtt的底层实现,有没有一个消息反馈的机制?路由表由什么实现的?里面存了什么东西?你项目的多线程管理架构说说,怎么实现线程间通信的,怎么实现线程管理的哈?求取cpu的内存使用,上升到下降的时长?介绍一下你项目的难点,收获?cyber具体的处理机制是什么样子的,能否详细解释一下?协程知道吗?有什么用?优先级?vs和文本编辑器打开一个大型的文本文件的速度为什么不一样?(vs不会卡,txt文本编辑器会卡,局部渲染和全体渲染的区别;多线程读取)算法题:实现字符串转数字?(剑指offer倒数第二道)计算数组的逆序对?(剑指offer)逻辑题,1 2 3 4 四个数字都有两个,实现两个1之间有1个数,两个2中两个数···
腾讯一面二面
自我介绍Redis的hash表的底层结构是什么?atomic和memory_order的关系?set、map的底层结构?deque的底层结构?Redis hash表冲突之后怎么做的?红黑树为什么好?redis中hash表是怎么个rehash的呢?redis因何高效?算法题:手写LFU算法?剪绳子?(剑指offer)
美团一面
自我介绍;linux (两道场景题)awk,sort排序命令,硬盘容量df还有其他的嘛?--du;git,合并代码,处理冲突,pull和fetch,查看当前分支,合并分支;七层结构、TCP/UDP区别、TCP三次四次;进程线程、分页分段、线程通信、进程通信、进程调用算法;缓冲区溢出是什么,有什么危害,怎么造成的?Redis的内存过期策略;消息淘汰;五种数据结构的底层;为什么Redis很高效?算法题:反转链表II逻辑题:5升桶 3升桶,获取4升水;九个小球,其中一个有珍珠,重一点,有一个天平,称两次找到有珍珠的那个?
美团一面(others)
自我介绍多态Linux常用命令I/O模型tcp、udp区别虚函数实现原理远程登录服务器为什么要四次挥手new、malloc内存管理网络缓存消息队列多线程互斥、锁常用状态码网络请求有哪些方法数组和链表红黑树性质算法题:股票买卖(单次)
PS:上面的面经只记录一些比较重要的问题,一些太简单以及闲聊略去了,还有一部分面试由于感觉太简单甚至都没有记录····之后我会分享一下自己总结的面试笔记分享出来,有什么问题可以留言。