【24年4月】腾讯QQ后台开发一面和二面(凉)

一面过了,二面挂了。

一面-45min

算法

  • 求多个数组的交集

面试官让我先说思路,我说了两个

  • 位图(需要说清楚,因为数组给的是INT32,那么我们就需要2的32比特的长度,需要开一个2^32/64长度的long long数组)
  • set

后来用set来写的。不难,先用一个数组创建一个set,再创建一个tempSet,然后遍历数组,得到两个数组的交集tempSet,set=tempSet,直到遍历完毕全部数组。

八股

  • 实习经历?巴拉巴拉随便说了下
  • Linux用过那些命令?
  • 磁盘满了怎么用命令看是哪一个文件夹占用的?(我说df可以看整个磁盘的占用,怎么找到某个文件夹就不知道了)
1、进入根目录:cd / 
2、使用命令 : du -sh * 查看根目录下每个文件夹的大小 
3、进入占用空间比较大的文件夹,然后再使用2中命令查找大文件。

  • Linux下共享内存是什么(页表映射,我说用信号量来访问控制,面试官说信号量不是线程通信的吗,给我整慌了)
  • TCP和UDP区别
  • TCP粘包问题,为什么UDP没有
  • UDP单个包的长度(UDP/IP都是16位,但是考虑到MTU,最好是1500-20-20)
  • C++vector的内存管理(扩容策略)
  • 线程/进程/携程区别
  • 网卡收到一个数据到进程发生了什么(从下往上交付),有几次用户/内核态切换?(应该只有一次吧,不确定)
  • 卡夫卡了解过吗?(nope)实习的时候项目有用到数据库吗?(没有,我顺便解释了一下实习干了什么,主要是补全单元测试,和数据库没啥关系)卡夫卡,MySQL、Redis了解哪一个(我说了MySQL)
  • MySQL索引用的什么数据结构(B+)为什么不用B树(范围查询)
  • Linux怎么实现高效的文件索引(不懂啊,我说一次性读取文件好过多次读取小字节)

反问

部门业务?QQ会员

二面

八股

  • C++编译过程
  • 编译出来的.O​​文件里面有几个?为什么两个.c​​文件会有两个.o​​,为什么不能是一个?(忘了)查了查,是因为这样可以方便分步编译,只需要重新编译有修改过的源文件就可以了,可以提高编译的速度
  • ​.a​​​​​和.so​​​​​文件有什么区别?(动态库静态库)

动态库:运行时加载(可以由程序员控制),在内存中共享同一块空间,可以被多个进程使用。编译时只链接了动态库的符号表,可执行程序小,且方便独立更新库(增量更新)。缺点是运行环境中必须包含动态库。

静态库:编译时就被添加到了最终的可执行程序中,可以脱离于库文件而运行。缺点是静态库更新时,需要重新编译整个可执行程序,在进行软件更新的时候会很麻烦。

  • 什么时候用动态库什么时候用静态库?区别?
  • C++读写锁怎么实现的?(不知道,瞎蒙了个用计数器来实现)
  • 计数器本身的操作要用互斥锁保证,互斥锁怎么实现的?(我说调用了系统原语,面试官追问底层汇编操作,不会)
  • C++高版本新特性(说了几个14和17的)有没有什么性能提升的?(不知道,干)
  • C++深拷贝是什么?
  • 什么使用深拷贝?什么时候可以不用?(这里我提到了move移动构造)
  • 实现一个LRU(共享屏幕用本地环境写的,写完之后说思路)

项目

随便问了点,不记得了

反问

  • 技术栈(3年前开始转golang,服务都用腾讯云的)
  • 问了我可到岗时间和可以实习的时间,还问了家在哪里。

二面前面的八股答的一塌糊涂,不出意外的G了

#暑期实习##腾讯#
凉凉面试记录 文章被收录于专栏

笨蛋CPP选手记录的面经。

全部评论

相关推荐

前言:面试官说不方便开摄像头,而且有很大杂音,感觉应该是没在会议室设备不好之类的。不知道是不是KPI面面试总时长1个小时,没有录音,以下是回忆:1. 先在聊天里给了一个代码(主要与可变参数函数和越界访问段错误有关),让我判断编译能不能通过,运行会不会崩溃(这块是print函数输出,平时本菜狗很少用,连%d输出的是整数还是浮点都忘记了,尬死我了,但最后回答应该是没错的)2. 现在我在一个客户端向服务端发送数据,什么情况下会导致发送阻塞,底层原因是什么?(这里从socket发送缓冲区和TCP滑动窗口机制回答的)3. 直接开始项目,问了我的第一个项目,提了一嘴很少看到有人写这个,让我讲述一下动机,从前期技术选型到中期代码实现到后期优化测试都讲了一遍,然后问了项目中io_uring和eventfd实现、Reactor和Proactor模型区别,有栈协程和无栈协程,ucontext与其他协程上下文实现有做过对比(没做过)4. 问第二个项目,主要问了Raft算法,引申出一个分布式场景题:一个分布式集群,每个节点存储的数据量很大,其中一个节点宕机,为了恢复服务需要新加入一个节点,那么就要将其他节点的备份数据复制到新节点,问因为数据量很大,复制导致带宽占用很大,影响了其他节点的正常服务,你会如何解决?(答了在低峰期复制,在高峰期使用转发机制)5. 写项目的时候有没有用到AI,是如何用的?6. 如果让你借助AI从0实现一个Raft算法,你会如何与AI交流?7. 写给AI看的文档和写给人看的文档有什么区别?(内心OS:这是什么问题?)8. 反问:部门业务,实习时间要求,下一面时间(这里面试官说“在我这没问题”,是不是过了)
查看16道真题和解析
点赞 评论 收藏
分享
04-01 08:53
已编辑
门头沟学院 Java
1. 面试官介绍:QQ - 频道业务,社区产品,后台开发 && AI 开发;闲聊 QQ 产品发展史2. 自我介绍3. Redisson 分布式锁底层实现,对比红锁4. 锁误删什么情况会发生、怎么解决锁误删5. 锁续约怎么实现,底层原理6. AI 推荐后台采用 WebSocket 实时推送怎么实现的,为什么采用 WebSocket,为什么不采用长 HTTP 连接或其他的 RPC?7. WebSocket 和普通 HTTP 的区别,从原理角度考虑8. OAuth2 的原理,以及对比 JWT、Session 的区别9. 重定向是 304 吗?为什么不是 401?10. 访问一个网站 404 了,怎么定位这个问题?11. 一个 HTTP 请求,怎么走到前端的?12. 通过 goroutine 和 recover 实现异步操作日志是怎么实现的?为什么这样实现?13. 如果使用 Kafka 异步操作写库,写的时机是什么时候?是这些操作完了再写还是先写再操作?14. 异步不能保证审计不丢失,怎么处理?15. 怎么保证消息不丢失?16. 先写 Kafka,再执行业务操作,还是先执行业务再写 Kafka ?17. 如果写 MQ 失败,会不会堵塞业务,此时怎么处理?怎么保证服务高可用,同时保证审计的完整性?18. 审计的ID放在哪里?失败了怎么处理?给出一个方案能保证正常审计,包括写 Kafka 失败了怎么办?写完 Kafka 后续执行失败了怎么办?19. 定位审计是一个强约束还是非强约束,若是关键路径则不能绕过它,它失败则后续都失败,若不是强约束则不能作为审计,所以怎么样才能做到审计?20. 怎么保证审计日志写库的强一致性也保证业务的正常流程?假设用 MQ 而 MQ 挂了怎么办?因为写 MQ 也可能存在一定的失败,若 MQ 挂了业务也就挂了,这种极端情况怎么处理?全程无手撕,项目深挖+场景深挖,挖到不会为止许愿二面
查看19道真题和解析
点赞 评论 收藏
分享
评论
13
27
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务