目录
字节一面 (2022.2.16)(55min)
飞书部门,视频会议方向。用飞书pc端入会视频面试,晚上8点整开始,面试官看起来年龄猜测27~32岁。
自我介绍1~2min
然后直接怼项目大概20min,项目中某些功能怎么实现的?怎么主从搭建?容灾技术?
rabbitmq主从复制和切换?
c++多态的原理?类内存布局,虚表和虚表指针那些.....
为什么父类声明析构为虚函数?
常用的设计模式?
网络相关,tcp和udp的区别?当时想到的都说了
编程题:(共享桌面写代码不需要运行)
- 自己实现一个hash表,只能用数组和链表,不用模板,不用自己写hash函数,实现插入删除查找功能。想了一会儿,写不出来,越想越没头绪.......
- 常用的设计模式,写一个单例模式。我写了一个饿汉模式,问是否线程安全要加锁嘛?我说这个饿汉模式不需要加锁,static构造对象时只允许一个线程执行。
- 给一个int无序数组,从中找出三个数,它们的和为0。我说用三个for暴力循环,面试官要求优化;我的优化是先排序数组,然后用双指针法.....leetcode的原题:三数之和
最后让我反问,我问了两个问题。
结束。
总结:我个人有点紧张,有时候脑子有点空白停顿了几下。整体还行,回答过程有点卡壳,算法编程有待加强....拿字节练手面试不凉才怪。
深信服一面 (2022.2.19)(40min)
上午十一点开始,原本是安排的前一天但是推迟到周六,面试官看上去时间很赶....
上来都不自我介绍了直接问项目,结合设计模式,对于不同的资源如何封装、排序?
基础组件选型,为什么选redis,评估内存占用,qps,持久化,还有为什么不选mysql?
说下static关键字。这里我还说的卡壳有点错误,回去再补补....
c和c++相互调用?有什么难点?
关于内存对齐?项目中用到的地方?
c++多态原理?.....
手写反转链表,leetcode原题:反转链表
最后面试官有事匆忙结束.....
总结:感觉面试管有点着急,缺少耐心。我语言基础有待加强。
shopee虾皮一面(2022.2.19)(80min)
面试部门是shopee IM,类似飞书、企业微信的通讯工具。
下午一点半到两点五十左右,第一次面试这么长时间,虾皮面试官大概年龄30+说话较客气。
开场自我介绍(1~2min)
项目介绍(2~4min)
怒对项目,先问我的后端服务架构是怎么样的,用了什么开源项目?然后分别怼每个项目的原理....
问场景题,终端入会前,http请求如何保证安全?伪造数据请求?后端服务代理挂了怎么办?主从备份?
rabbitmq如何保证消息不丢失,同时如何保证消息不重复消费?
比如有很多用户来请求,并且需要定时发送,怎么做?如何设计一个定时任务,定时处理?任务数量太多怎么做?
redis的部署模式单机、主从、分布式搭建,redis主从切换?哨兵机制?分布式节点的主从由谁切换?
redis的get命令如何查找对应数据?跳表的实现?跳表查询时间复杂度,调整索引的时间复杂度?它和mysql的B+树的不同?
mysql的主从复制?查询语句中有where ... 和 order by,以谁去建立索引查询?如果order by排序字符串怎么排序?内部使用什么排序机制?
太多内容.....有些记不清了
编程题:
给两个字符串a,b相乘,返回的结果也是字符串,要考虑溢出风险,leetcode原题:字符串相乘
我写了一会儿,然后感觉不是一时半会儿能写完的,就说了大概思路....
反问环节:我问了部门做啥的,入职培训机制,工作比较好的体验.....他说是外企,业务面向东南亚地区,很少加班,这让我很心动哈哈。
总结:
没有问语言基础的问题。我觉得面试官的面试还是很不错的,提的问题由浅到深,根据不同场景深入探讨并提出问题,激发面试者的开放性思维。比较满意的一次面试。
腾讯互娱一面 (2022.02.22)(50min)
晚上8:30开始,感觉面了个假腾娱,全程都没有hr联系我,直接技术面试官两次联系约面试,而且是电话面试,不用开视频,这样压力小点。是天美下的游戏后台开发部门,游戏没透露叫啥,估计热度不高
自我介绍免了,寒暄几句就开始问项目
介绍项目,问项目规模,用到的技术和组件....
游戏相关场景题,54张牌随机洗牌,把牌放到数组中,如何做到随机打乱?说了我的方案后,要求再优化...这个比较简单
游戏战斗场景,多人在线游戏,A攻击B,这个过程数据是存在哪里?怎么去实时同步数据?如何保持双方玩家客户端数据的一致?如果结果存到mysql,是否可行?访问mysql接口是同步的吗?如何做异步?
网络相关,网络套接字编程的流程,口述了一下。这种简单流程如果多个客户端再连接的话可以吗?如何支持1w个客户端连接?问了io多路复用的编码细节,select/poll/epoll。
tcp粘包处理方案?
有些题目忘了...
算法题,给一个a~z的随机长度的随机字符串,字符有重复,需要找出其中第一个没有重复的字符。说了一个初始思路,然后被面试官找出了问题,接着我又给出另一个方案,可行。面试就结束了
shopee虾皮一面(2022.2.23)(70min)
和之前的部门不一样,是做多媒体中心的一个部门,虾皮面试官都很有礼貌,会自我介绍和介绍面试流程。
介绍项目然后怼项目,在项目中承担怎么样的一个角色?问了redis的kv存储如何设计等等.....
网络相关:io多路复用,select/poll/epoll对比,优点缺点?epoll内部原理实现?
tcp如何做到可靠性传输?
拥塞控制算法?说下每个算法的流程?
http和rpc的区别?ssl的机制?用了什么算法实现?
数据库mysql的索引原理?为什么用B+树,而不用B树、红黑树?说了这些数据结构的区别和原因..
音视频相关,分辨率、码率这些...这些我懂得不多....
有些题目忘了...
编程题,判断一个链表是否有环?并且找出环的入口位置?leetcode题目:环形链表
但是他这里稍微变形了以下,要求返回pos位置而不是链表节点。做了十分钟写出来了。
反问问题:虾皮做跨境电商目前比较大的挑战?部门业务方向?新人培训等等....面试官一顿说好久.....
深信服一面 (2022.2.24)(46min)
做企业网络路由vpn安全相关的部门,面试官看起来年纪不大,下午四点开始
自我介绍免了...相反是面试官在介绍自己部门做的内容以及用的技术栈
问我做的是偏向哪个方向的,音视频和服务器架构?
问数组和链表的区别,详细说说
频繁插入删除查找时用哪一个数据结构?说了红黑树的原理以及使用原因
问了跳表,什么是跳表?跳表怎么往下一级查找?
详细说说内存中堆和栈区别和用法?
内存泄漏是什么?有没有遇到过?解决办法?
还有其他小问题忘了....
算法题
给几个ip字符串数组,里面会有重复,如何合并重叠的区间变成一个新的数组,一开始说的比较复杂,后来面试官简化了问题,变成int型数组合并。
最后反问几个问题
说过几天会有hr发消息通知结果,结束
总结的话感觉这次面试也还好,比我之前面试的都简单很多,对于原理性的东西问的不深,可能是面试官年轻,我怀疑里面有点坑哈哈...
富途一面 (2022.2.24)(70min)
互联网业务-IM与多媒体后端开发,做的是社区后台,有点像论坛吧。面试官年轻,讲话比较友善,整个过程还是比较轻松,有可能是面试多了我自己不紧张了吧。
开始面试官自我介绍以及他部门做的业务
然后自我介绍,全程没问我的项目细节
根据他介绍的部门业务,问了场景题,如果一个社区论坛上有人创建很多小号去发广告或者违禁的帖子,该怎么处理?可以想多种方案。我说了,注册账号开始限制,ip登录限制,登录短信或验证码验证,手机号限制,身份证实名限制,发帖时验证码,算法审核疑似广告内容,以及人工审核等等方案,但是面试官还继续问,还会一边记录,我怀疑面试官在骗方案哈哈哈....
问从浏览器输入一个网址,到页面展示的过程中发生了什么?都会经过dns解析吗?什么情况下不会?有没有自己尝试搭建一个web服务器?我公司的域名是怎么解析的?这个我答得不是很好,太深入的点没答上来。
编程题,对两个有序数组,取出两个数组的交集,一开始手写暴力for解法,然后分析时间和空间复杂度,然后要求优化,优化之后继续分析时间和空间复杂度,最后我又给了另一种用hash表的解决方案空间换时间。
出了一道概率题:100万人口的城市,河东这边有80万人,河西这边有20万人,若城市中每天打100万通电话,那么一个公民a(不确定是河东河西)他跨河打电话的概率是多大?城市一天当中大概有多少次跨河打电话刚开始有点懵,概率论的题大学之后就没接触过了,我胡乱一通分析....到现在我也不知道正确答案....
数据库mysql,问了主键索引、唯一索引、普通索引、组合索引、全文索引。唯一索引可以有空值吗?可以有多个null值吗?组合索引和主键索引的关系?面试官给出了一个table结构和一个查询语句问什么时候走回表什么时候不走回表查询?
反问环节,问了部门业务内容、部门规模、工作体验以及加班强度。
结束。
广州BIGO一面 (2022.2.25)(75min)
总部是广州番禺,部门是主要做短信验证相关的,小组五六个人,面试官很年轻,喜欢笑聊得也挺来。
惯例自我介绍
介绍项目,问了项目内容,遇到的难点,怎么处理?
我项目中服务器主从搭建时怎么同步?怎么处理业务逻辑,怎么保证业务的连续和不丢消息?给出了一些方案,问的还挺细的。
介绍stl,都有什么特性?vector扩容?map的底层?迭代器失效以及如何处理?
内存和cpu异常如何排查?内存泄漏怎么处理?cpu过载呢?
说说智能指针?为什么auto被弃用?
tcp三次握手流程?为什么需要第三握手?不发第三次会怎么样?
常用的数据结构和算法?
问了快速排序的原理?
大概记得这些....
算法题,共享屏幕手撕二分查找算法,差点忘记,写了十多分钟写出了while迭代的方法,用的左闭右闭原则,要求改成左闭右开原则...后面改出来了但我有点不太确定;
然后面试官要求再用递归的方法写出来,最后再改一个递归方法,找了一处错误就过了(粗心)。
面试官问有什么问题想问的,反问了几个问题,面试官对我的问题有点猝不及防差点答不上来...
结束。
总结:面试了这么多次,一来是能大概了解到目前行业中常用的主流技术和动态,二是自己在临场反应、口语表达和快速思考能力上有了很大的提升,而且面试过程中也越来越熟练和自信,对于不会的问题要及时总结和解决,继续加油~
百度一面 (2022.2.28)(32min)
智能驾驶业务部门,晚上七点开始,半小时就结束战斗了....亏我还紧张了好几天,疯狂看自动驾驶面经,面试没问多少.....感觉面试官有偷懒的成分,也可能是大量招人放低要求吧
自我介绍....(中间吹几波百度智能驾驶的技术嘿嘿...)
问我是否在职?跳槽原因?。。。(我早有准备)
问了上家和这家公司项目经历。服务器架构?如何提高客户端连接并发?
问了stl、c++基础,虚函数、纯虚函数、多态原理....
问红黑树,用哪种遍历方式更高效?说了一下我的看法,不知道对不对....
算法就是反转链表,迭代法和递归法
最后聊几句,反问几个问题结束,面试官说后面会有hr联系我.....
总结:问的有点简单了....有没有坑呀.....
深信服二面 (2022.3.1) (20min)
面试体验不太好,面试官记错时间迟到20分钟,我打电话给hr去提醒才上线的
自我介绍
全程问项目,问的挺细,自己做的东西介绍起来没啥难度
问了离职的相关问题
时间很短,可能是面试官比较忙吧,但是迟到真的影响体验。
广州BIGO二面 (2022.3.2)(62min)
面试官看起来阅历还挺丰富,曾经在阿里云和百度待过。下午五点半开始。
自我介绍免了
直接怼项目,狂问细节,高可用、异常处理等等
c++基础就问了虚析构函数、纯虚析构函数?
网络方面问了服务器一直接收tcp连接会出现什么异常?
两道算法题:
两个有序的长度不相等的整型数组,找出两个数组的中位数?我的方案时间复杂度是O(log(n+m)/2),面试官问进一步优化方法?
设计一个函数并且计算在一秒内调用的次数如果大于k次那么就返回false,否则返回true,这个题有意思,写了一个方案之后被发现有点问题,然后和面试官讨论换另一种方案。
最后反问几个问题,说后面会有hr联系.....结束
腾讯一面 (2022.3.2) (124min)
找人内推的,腾讯瓦特实验室部门,做微信支付相关业务和沉淀的部门,偏向于全栈和分布式。面试官全程不开摄像头,确实和网上说的一样。晚上7点开始,连续面试下来有点吃不消,而且两个小时超久还饿着肚子。
自我介绍免了,上来直接给我甩出四道算法题,第四题是后面加的,我做了一个小时还加上调试,没有完全做完。
第一题:一个有序的数组,找出这个最大的连续递增序列,需要返回最大长度以及这个序列的初始位置。我用迭代法去做加调试花了较多时间,结果还没有,面试官说用db(动态规划)的方法该怎么做?我说了以下我的思路,因为db这块我不够熟练,不敢写,有待加强。
第二题:LRU缓存淘汰算法,leetcode原题:LRU缓存淘汰算法,需要实现get和put,这个还算简单,过了。
第三题:设计题,设计一个中国象棋游戏的框架以及各个对象的属性和方法,比较开放性。时间有限我就写了棋子基类和属性以及不同棋子如何继承和实现,感觉内容有点多写了一些就放弃了。
第四题:后面加的题目,写一个二分查找算法,包括迭代法和递归法、以及注意边界判断、整数溢出等问题,这个之前不久刚写过,写的还是比较快的。
然后开始问工作经历,上家工作做什么,这家工作内容?怼项目细节,然后增加新的需求该怎么做?比如我的服务高并发如何实现?网络io多路复用?Reactor 模型和Proactor模型的区别?这个之前有看过,大概说了以下。
redis的主从同步?如何实现分布式锁的?
分布式CAP定理?简单说了一下,这块我不是很熟,毕竟业务都用不到....
问所具备的技术栈?客户端开发做过吗?我说做过,最近在做window Qt开发会议客户端。
还有一些问题不太记得了....
最后反问几个问题。
总结:这是面试过最长的也是最难的一次,跟字节难度差不多。一开始就做几道算法题,有点懵思路很难打开,而且面试官没开摄像头漏过脸,察觉不出面试官的表情和状态,让我有种无形的压力,就像我在明处而敌人在暗处。其实我也没想着能通过,只是积累一下经验罢了,确实是国内互联网公司面试的高难度了吧。可能对于大佬来说这些问题没啥....
深信服三面 (2022.3.3)(40min)
三面是hr面试,约的晚上七点电话面试。
自我介绍,工作内容,跳槽原因,自己的优缺点,遇到的问题,性格,和同事的关系,有成就感的事情,是否单身,工作后有什么成长和不足。这些问题只要不答得太离谱,不要暴露致命缺点就没啥吧,当作唠嗑。
hr介绍了深信服的上班时间,加班强度,说是周一二四加班到八点半,其他时间是六点,每个月第一个周六上半天班其他双休,大部分是要加班的,基本会比规定时间晚1~2小时下班,看部门以及产品新版本上线情况吧。
介绍了薪酬福利,薪资结构,问了我的期望薪资和范围,说我的期望涨幅有点高.....
最后说这几天要做一个性格测试问卷,结束。
百度二面 (2022.3.5)(53min)
智能驾驶业务部系统c++工程师岗位,面试官上来直接坦白,部门工作强度、加班还挺多早10晚10-11,周六项目进度赶的话需要加班,这一套操作把我吓傻了....
面试官先聊了二十分钟部门的工作情况,做的是智能驾驶系统量产,L2+的一个等级
对于新人培养方面,会有一些培训,部门更看重员工的价值输出,进来就能上手项目,而不是学习.....(说白点就是压榨最大价值吧)
问我前两家工作时间还不长,为什么选择跳槽?对这个行业的看法?
问我的工作内容?项目细节?服务架构和组件的选型?
没有问太多语言基础的东西
反问几个问题
总结:这是一次心态糟糕的面试,对于周六加班和工作强度我有一些抵触,面试官开场白也太坦诚了让我对这个岗位产生动摇....也不是不能加班,而是加班强度超出我的承受范围。