首先感谢腾讯爸爸捞我。

本人普通211院校,大龄ACMer(区域赛铜),感觉腾讯问的蛮全面的,算法倒是问的比较少。

下面是凭印象过一遍,另外其他厂的一些面试我认为比较经典的,我也加上去。

一面(30min)

问的基础知识比较多,
1、自我介绍(最好别说的太少)
2、关于C++的多态实现(虚函数动态绑定)
3、创建派生类对象构造函数的执行顺序(基类,派生类)
4、TCP三次握手(TimeWait为什么2RTT),四次挥手
5、TCP的有限状态机最好知道,被问到四次挥手每次发送完报文处于什么状态(客户端发送FIN,进入FIN_WAIT1,收到ACK,进入FIN_WAIT2,再收到服务器端的FIN报文进入TIME_WAIT;服务器端收到FIN报文发出ACK进入CLOSE_WAIT,然后发送FIN+ACK服务器端进入LAST_ACK状态),协商完毕之后都进入CLOSED。
6、TCP流量控制(可变窗口协议,双方协商cwnd值)和拥塞控制(慢开始,拥塞避免,快重传,快恢复)。
7、三次握手发生在Listen还是Accpet(三次握手发生在Accept之前,Listen使端口进入Listening状态,Accept只是从中提取出来Socket,你最好测试下)
8、Mysql的Mylsam引擎和Innodb引擎的区别(从版本,索引缓冲区,外键,侧重点,锁级别,优缺点适用场景)。单表查询Mylsam效率快的多,稳定性也高,它的索引页和数据页是分离的,所以相同页大小Mylsam的索引更多一些,可以存更多的索引键。Innodb的支持事务,恢复能力强。

再补充一个阿里一面问的,我没答出来:
1、一个文件中有一堆大数,内存中放不下,找出最大的(我答的不在点上,取出来一直比较然后找到最大的。正解:对文件水平拆分,然后多路归并,对小文件排好序后每个文件都取少量数据(内存允许的情况下),然后放到一个新文件中,取完了就再取一些)。
可参考https://blog.csdn.net/ZZh1301051836/article/details/101106024

二面(30min)

二面用的腾讯会议,直接共享屏幕,面试像聊天一下(有点梦幻),还好用的腾讯会议。
我展示了我经常更新的博客,寒假Python做的测试软件也展示了出来(算是个中小型项目了),表现出来的我的实践能力。
二面发现我面的是游戏部门,问我做过游戏没,原来我做过很多简单的游戏(贪吃蛇,三维弹球等等都是小游戏,都是比较简单的没展示出来)。
又简单介绍了下我用Muduo库写的一个聊天软件,这个算是中型项目。
总体感觉发挥不错
1、自我介绍(不能介绍的太少)
2、走一遍我的C++聊天服务器的项目:客户端是简单的命令行窗口,按照约定的消息格式发送请求(msgid,json),都用Json封装数据。服务器端分层,网络层我用的陈硕大佬的Muduo库(封装性强的Reactor模型,以后一定看看这个源码),网络层和服务层回调解耦,服务层主要实现的功能登录、注册、一对一聊天、离线消息存储、查询好友,添加好友,创建群组和群组聊天待加。Dao层用的Mysql,也用了libmysqlclient提供的数据包。
可能面试官觉得我都是用的库,然后开始问我底层了解不,我平时练习用一些(我缺乏底层api练习,C++很多网络api蛮复杂的,封装epoll,封装连接,其实也可以,总有一天我会有自己的方法库)。
这一点我认为面试官可能会问我reactor模型的了解,我不太了解,简单的知道。https://www.cnblogs.com/moyangvip/p/5360837.html
3、最后十分钟,一直在跟我讨论进程和线程,基本概念、应用场景。
为什么浏览器用多进程更好一些,我从资源占用说了一通,认为网页不会开很多,而且关闭网页,打开网页很好调度。面试官哥哥说了他的观点,多线程的话一个网页发生问题,这个浏览器就崩溃,但是多进程如果问题可以直接Kill。
为什么有了I/O复用还要用多线程,明明复用可以解决所有问题,我没答出来。我想着多线程可以提高效率,但说不清楚。解答:从硬件方面来答,多线程可以被CPU多核并行处理,数据量太大要从硬件方面扩张。

三面(1h)

紧张又激动,面完之后觉得很挫败。
可能是最后一道题我说了我的算法处理思路,给我抬了上来。
一共三道题:
1、类A继承B、C,A中有多少个虚表,怎么通过虚表去实现多态。(我确实了解过这方面,他说我了解的不对,我是从这个博客了解的,没有再深入一步,我很惭愧。
https://blog.csdn.net/haoel/article/details/1948051)
2、客户端发送10个200字节的包,服务器端一次recv能收到多少字节,有什么情况。(不会,瞎扯了MTU,MSS,设置的缓冲区大小,被说不对)
3、最后是个思维题,没想出来。两个人打牌,每个人:
A: 3 4 5 66 77 88
B: 3 4 5 66 77 88
单压单,对子压对子。A先手,是否可以必胜。
这是个博弈,同局势一般都可以赢。
A必胜的方法:
先出4,B出5,然后B出3/4,我都不出,B出4/3,我出5。B没有单的了,我再出3,剩下的对/单先手必胜。
最后让我设计算法怎么处理是否必胜:
dfs,对B来说,我不出或者选择一种出法压你,或者如果到B了,就不能不出。对A来说,B的所有情况,不管怎么出,我都要赢。dfs的时候每次到A都要保证接下来所有情况都要赢。存在这种情况则必胜。

4、问了一些非技术的问题,平时怎么学习新事物,ACM比赛给我带来了什么,记忆最深的一个比赛(我突出了团队配合,说了徐州区域赛)。

Hr面(20min)

聊天聊的挺愉快的。

总体面试下来,感觉收获蛮大。
腾讯处理也挺快的,我对内存,业务逻辑方面还需要进一步学习。
共勉。

腾讯一面+二面+三面+HR面相关推荐

  1. 九月份参加OPPO和腾讯Android面试:技术一面+二面+三面+HR四面,我的面经总结!

    之前很多时候我是拒绝说我的面试经验的,因为我们简历经历不一样问的问题也会不一样,且大厂面试光靠背几个面试题就想过还是比较难的.因此在这里提醒一下大家不要临时抱佛脚,你花几天能背下的东西,别人花几天一定 ...

  2. 阿里软件测试二面通过率,阿里测开一面二面三面hr面

    阿里本地生活饿了么测开岗位 一面: 1.自我介绍 2.项目中怎么做测试的 3.你了解测试是什么 4.什么是单测 5.冒泡排序 感觉一面简单的出奇.... 二面: 面试官是个可爱的小姐姐- 1.自我介绍 ...

  3. 刚参加完阿里面试:一面+二面+三面+HR四面,我的复盘经验总结

    阿里中间件团队一面: 第一步先自我介绍? 介绍自己的项目经验和个人的擅长点,面试官主要考察你的表达能力和语言精简能力. 第二步:项目中做了什么,难点在哪里? 主要是想了解参与过技术难度最大的项目难点, ...

  4. 参加完阿里Java面试:一面+二面+三面+HR四面,后的复盘经验总结!

    阿里中间件团队一面: 第一步先自我介绍? 介绍自己的项目经验和个人的擅长点,面试官主要考察你的表达能力和语言精简能力. 第二步:项目中做了什么,难点在哪里? 主要是想了解参与过技术难度最大的项目难点, ...

  5. 【字节跳动】-复盘-一面+二面+三面+hr面+交叉面

    二战初试结束,疯狂在牛客上寻找机会,基本上所有的机会都是面对应届生,对二战的我来说真没办法,即使明明确确写着只招2021我也都投了,光测试开发的实习岗位我就给四五个hr投了简历,所以"牛客助 ...

  6. 刚参加完阿里面试:一面+二面+三面+HR四面,我的复盘经验总结!

    阿里中间件团队一面: 第一步先自我介绍? 介绍自己的项目经验和个人的擅长点,面试官主要考察你的表达能力和语言精简能力. 第二步:项目中做了什么,难点在哪里? 主要是想了解参与过技术难度最大的项目难点, ...

  7. 美团前端二面+三面+HR

    等了一周,迎来了美团的二面,二面面试官是前一天通知的,约好第二天上午面,视频面. 今天上午十一点多,等来了二面的电话,然后加了QQ,进行视频面. 一开始还是自我介绍.然后在介绍中有说到学前端多久了,然 ...

  8. 字节跳动|后端|提前批|一面+二面+三面+HR 面

    一面|1h 自我介绍 select.poll.epoll? epoll的两种触发模式? TCP三次握手过程,有什么状态,状态机如何变化? TCP握手的目的有哪些? 什么是 TIME_WAIT 状态,为 ...

  9. 2021-01-08 腾讯PCG二面+三面 and 网易二面

    二面 1.一个二维网格图,每个节点代价均大于0,每个节点的上下左右方向都可以走(如果有),请找出左上角点到右下角点的最小代价路径? 解决思路:本题就是一道无向图的最短路径问题,可以使用 弗洛伊德算法 ...

最新文章

  1. dispatch_queue_create(com.biostime.xxx, DISPATCH_QUEUE_SERIAL)的陷阱
  2. (发现)问题才是推动创新的动力系列:两种类型硬币(均匀和非均匀)能否用第一次得正面朝上的概率推断“第一第二次依次获得正面反面情况”的概率?
  3. flink source code
  4. Java 8系列之Lambda表达式
  5. 【业务知识】档案数字化加工处理过程
  6. w2k telnet port change
  7. 2021HDU多校8 - 7059 Counting Stars(线段树)
  8. 会议交流—PPT下载|DataFunSummit2022:知识图谱在线峰会PPT合集!
  9. 企业开发需要的git提交和拉取代码(本地仓库和github演示)
  10. 让你的单细胞数据动起来!|iCellR(一)
  11. 《流浪地球》收益可观 助力北京文化业绩大涨
  12. python定时任务_Python定时任务工具--APScheduler
  13. 电脑开机出现press f11 to start recovery system问题分析与解决
  14. Pycharm安装chardet模块
  15. 安装 配置BlackBerry Push Service SDK v1.1.0
  16. grpc服务认证实现方式
  17. 日期计算器---日期相减、日期加天数、日期减天数
  18. MySQL索引有序性分析
  19. 微信小程序评论的实现
  20. 块元素盒子内容被撑开

热门文章

  1. 化行列式为上三角形式 C++
  2. 服务器双系统怎么安装教程视频教程,微pe双系统怎么安装教程
  3. php m403n安装错误,HP LaserJet M403n驱动
  4. Redis:配置文件
  5. 获取计算机管理员,获取administrator权限的方法步骤-电脑自学网
  6. Email邮件发送设置 工具开发整理(网易邮箱、Mailgun为例) 下篇
  7. Android性能优化全方面解析
  8. Hadoop Steaming编程示例
  9. Windows PC 微信不显示头像或表情
  10. linux定时压缩脚本,使用shell脚本对日志文件进行定时压缩