腾讯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. 表现评价:
   - 面试官反馈:基础扎实,但项目细节还需深挖。
   - 面试官人很好,收获良多!期待二面,但未必能二面(一成把握)
全部评论

相关推荐

一共四道题,我是菜狗,全都没有100%,最后一道题没做出来第一道题:一个班有N个学生,如果上课之前到场人数少于K,这节课就取消,给你NK和全班人到班里的时间,让你判断这节课会不会被取消e.ginput :N4K3   时间:-1 -3 4 2  ==>YES  会被取消,因为0时刻到班俩人我感觉就是盘有多少大于0的数字,看这个数是不是比K小就行,一开始只有60%,加了个K>N输出YES就80%,然后我就想不到别的情况了,欢迎大佬评论区指导!!!第二题:有点像斐波那契,f(i+2)=f(i)+f(i+1)*f(i+1),让你求f(n)input:f(1) f(2) n    0<=f1,f2<=2   3<=n<=12我直接递归的,只有60%,一个是longlong会溢出,还有应该可能是内存占用太大 ?第三题:有A、B、C、三个数组,每次从两个数组中选一个元素进行删和减操作,比如从A里选a,B里选b,然后B删掉b,A里的a变成a-b,问你最后留下来的数组元素之和最大是多少input: 2 4 1(三个数组的长度,题里的输入是三行,我直接写一行里了哈)1 2(第一个) 6 3  4 5(第二个)5(第三个)output:20个人觉得,就是三个数组元素之和,先选个max mid 和min,然后return  mid-(min-max);然后mid = sum1+sum2+sum3-max-min,带进去就是return sum1+sum2+sum3-2*min,但是只有50%第四题:我感觉可能和bfs/dfs有关,可以做出来,但是我的脑子,em,不好形容题目:给你一个全排列序列(题目就是这样说的我记得,其实就是1~n的乱序),让你找1~n阶完美序列,举个例子吧序列L:4 5 1 3 2 6下标i:0 1 2 3 4 51阶 就是包含12阶 就是连续的两个位置包含1和2 这个序列的1和2被3隔开了,所以没有2阶3阶 L[2~4]连续包含123,虽然是132,但是算作完美序列以此类推最后输出是一串01字符,一阶有为1,二阶没有为0,三阶有为1,所以这三阶的输出就是101我的想法是以1为中心,向两边去找,用一个count标记小于等于阶数的个数,边界不合法break,遇到比阶数大的break,但是通过率0比如说我找3阶,1的左边是5,5>3,所以左边的搜索到此为止,1<3,count++,继续,右边3不大于3,count++,继续搜索,2<3,count++,继续,6>3,break,最终count=3=阶数,那么存在3阶完美序列唉,还是算法题做得不够,小菜狗只能到这个程度了,欢迎大佬评论区指点!!!!!
查看8道真题和解析
点赞 评论 收藏
分享
评论
4
6
分享

创作者周榜

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