腾讯C++一面

1. 个人情况

自我介绍

2.  基础

多态的实现机制——(静态多态也就是重载,动态多态(虚函数,虚函数表,不同子类调用同一函数的效果不同,虚函数指针))

如何保证并发安全?——(回答了加锁、互斥、读写,共享,间隙,和原子操作)

了解CAS操作吗?(答到原子操作和自旋,造成CPU忙等待,但不会嵌入内核)

CAS的问题了解吗?(答到了)

ABA问题了解吗?(答到了,但是不熟练)

内核态和用户态的区别是?(硬件访问权限和资源访问权限)

协程有了解过吗?(没写过,但知道是用户态的线程,并发性极强)

HTTP和TCP和UDP是什么,有什么区别,介绍一下?(应用层/传输层,HTTP的版本,HTTP基于TCP,TCP的可靠交付?)

TCP用什么保证可靠交付?(回答了序列号,ACK,重传,拥塞控制和接收窗口返回)

HTTP可以基于UDP实现吗?(正常不行,除非UDP内部实现了可靠)

UDP为什么可以用在游戏传输?(可接受一些损耗,因为可以补帧,但延迟卡顿会非常明显)

3. 项目拷打:

缓存系统是本地的吗?

怎么实现的?

LRU怎么实现?

LRU-K进阶在哪?

内存泄露怎么解决?

了解垃圾回收吗?(这个答的不好,记得垃圾回收有三个限制只能达到两个,C++实现了性能最优,因此要手动管理,Java的GC自动管理,因此性能会稍差)

shared_ptr的引用计数原理?什么时候被清理的?

工作负载剧烈变化场景是怎么个变化?(项目细节)

如果缓存系统加上TTL呢?你怎么实现?

Redis的LRU策略了解吗?

缓存击穿是什么?解决方案有什么?

QPS怎么测的?具体在什么环境下测量的?

具体测QPS需要考虑哪些指标?比如CPU核数?

哈希倾斜了解吗?

分片的时候出现哈希倾斜怎么解决?

raft从哪里学习的?

MCP了解吗?

SKILL了解吗?(没怎么了解,未深入)

了解哪些分布式一致性算法?(raft?ZAP?)

哪些场景需要这些分布式一致性算法?或者说协议?

Protobuf 和 Json 在网络传输中怎么抉择?(包体大小,反序列和序列化,可读性)

CAP的一致性和数据库事务的一致性对比一下?

CAP的CA,CP,AP各自是什么,有哪些协议,用在哪些场景。

4. 怎么学习的?当前的安排是?

力扣题:

19. 删除链表的倒数第 N 个结点(因为做过,说了思路,然后扩展,可以类比哪种数据结构解决,说了栈,说对了)

402. 移掉 K 位数字

(这道题手写,写了可能得有15分钟...微调得有点久,一些细节没考虑好...)

反问环节

1. 业务范围?
2. 表现评价:
   - 面试官反馈:基础扎实,但项目细节还需深挖。
   - 面试官人很好,收获良多!期待二面,但未必能二面(一成把握)
全部评论

相关推荐

昨天 17:55
已编辑
浙江大学 算法工程师
面试前两分钟,已经定了50%的成败。用CAME公式,让你开场30秒就赢了。面试官从你开口说第一句话开始,就在评估你了。心理学上有一个“首因效应”——人对他人的第一印象形成于最初的几秒到几分钟,而且这个印象会在整个后续互动中持续影响判断。换成面试场景就是:如果你的自我介绍让面试官觉得“这人思路清晰、有料”,那么后续的技术问题他会带着“发现亮点”的眼光看你如果你的自我介绍让他觉得“这人讲话混乱、没重点”,那么后续的问题他会带着“验证疑虑”的眼光看你。两种状态下,同样的技术回答,得到的评分是不同的。所以,把自我介绍打磨好,值得你花一整天时间。✍🏻️CAME公式:让你的自我介绍有结构有亮点我把一个高分自我介绍的结构总结为CAME公式:C = Core(核心身份):一句话说清楚你是谁A = Achievement(最强亮点):最能体现你能力的1到2个成就M = Match(岗位匹配):你的经历为什么适合这个岗位E = Expectation(期望与热情):你对这个岗位/公司的期待整个自我介绍的时长控制在1分30秒到2分钟之间。示例:“我叫张伟,目前在XXX大学计算机系读研二,方向是分布式系统(C)。在研究生阶段,我主导了一个基于Raft协议的分布式KV存储项目,在6节点集群上实现了读吞吐量10万QPS(A)。我来面试这个岗位,是因为贵公司在基础设施方向有很深的积累,跟我的研究方向和技术兴趣高度吻合(M)。我对这个机会非常期待,也在持续学习Kubernetes和云原生相关的内容(E)。”这个自我介绍的每一句话都在服务一个目的:让面试官立刻知道你是谁、你有什么、你为什么适合这里。⚠️不同岗位的差异化策略CAME公式是通用框架,但具体内容需要根据岗位调整。技术岗(后端/前端/算法):Achievement部分重点放在技术项目的量化结果,用具体数字说话。避免只说“我熟悉XXX技术”,要说“我用XXX技术解决了什么问题,达到了什么结果”。产品岗:Achievement部分重点放在你对某个产品问题的洞察或者你推动的某个功能上线的过程。面试官想看的是你有没有产品感,能不能从用户角度思考问题。运营岗:Achievement部分重点放在数据指标的提升,如“我负责的活动带来了X%的用户增长”,以及你在其中的具体贡献。通用建议:在自我介绍中,不要用形容词描述自己,要用事实说话。“我是一个有很强学习能力的人”没有任何说服力;“我在三个月内从零学习了Go语言并上线了一个500日活的工具产品”才有说服力。最容易犯的三个自我介绍错误第一,时间太长。超过2分钟的自我介绍,面试官会在心里默默出神。两分钟是心理极限,超过这个时间你控制不住对方的注意力。第二,把简历念一遍。面试官手里有你的简历,你念给他听是在浪费双方的时间。自我介绍应该是对简历的提炼和延伸,把最有亮点的部分放大说清楚,而不是把简历流水账地过一遍。第三,语气过于平淡。很多人把自我介绍说得像在背课文,语调、停顿、重音都很平。一个有感染力的自我介绍,应该在关键成就的地方稍微加重语气,在表达期待的地方声音里带着一点热情。这不是在表演,而是在传递真实的情感——你真的很期待这个机会。这种真实会被面试官感受到。👉🏻一个可以立刻执行的练习方法看完这篇文章,立刻做这件事:第一步,用CAME公式写出你的自我介绍稿,控制在200到250字以内(口语速度大约1分30秒)。第二步,大声朗读三遍,注意语速不要太快(很多人紧张时语速加快)。第三步,录音,播放给自己听——你会发现很多你自己没意识到的问题:语速、停顿、用词。第四步,找一个朋友或者用AI扮演面试官,做一次完整的模拟,不用提示就能完整说完。自我介绍是一个你能100%掌控的面试环节。其他所有问题都可能出现意外,但自我介绍是你完全可以提前练到完美的。把它做好,你就已经在起跑线上领先了。
面试被问“你的缺点是什么...
点赞 评论 收藏
分享
评论
3
4
分享

创作者周榜

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