C++工程师精选面经合集
4家公司
10篇面经
最新 热门
/discuss/870827716424040448/discuss/870601191745454080/feed/main/detail/21ff5a29baa54825bb7ac8cd77f2a053/discuss/870826674009489408/discuss/870354606277021696/feed/main/detail/bbd9949f2c7f4f6588a8102d65bfcb9b/feed/main/detail/de1746a20a8f48c1875c61ba8716477d/discuss/869565285177581568
04-02 18:58
四川大学 Java
4.2字节后端一面
📍面试公司:字节跳动🕐面试时间:2026.4.2💻面试岗位:后端实习生❓面试问题:1.controller/service/repository三层架构的功能2.各层怎么交互(答的依赖注入)3.鉴权怎么实现(说用的spring security套件,给予身份)4.缓存和数据库数据一致性怎么解决(回答的先改数据库在删除缓存)5.为什么不先删缓存(好像两种方式都有一定问题,但是后删缓存问题小一点)6.缓存删除失败了怎么办(应该想考消息队列,但是鼠鼠还真没想过)7.缓存有ttl吗,大量key同时过期怎么办(缓存雪崩呗,鼠鼠看过的但是只答了ttl加随机时间和双key策略)8.讲一下mysql索引(回答了主键索引和唯一索引,b+树实现)9.为什么用b+(回答的树高度低,查询次数少开销少)10.进程和线程的区别?线程什么哪些资源可以共享哪些不行(os原理,基本没怎么复习,答的一坨)11.死锁条件和解决方式(四个条件和死锁预防,死锁检测,死锁接触)12.cas和普通加锁的优劣(看的时候没认真看,只记得cas有aba问题)13.互斥锁,自旋锁区别(完全没看自旋锁)14.tcp,udp区别15.tcp为什么三次握手四次挥手16.手撕,数组的最大连续子数组和(leetcode原题,五分钟撕了,但是让讲就有点捋不清了,就说了当前缀和为负数了就抛弃前缀,重新开始子数组)17.脑筋急转弯:100只老虎和一只羊,老虎吃了羊就变羊,最后羊会不会被吃(好像是考虑奇偶情况,但是鼠鼠想的就是吃了羊等于自己成猎物了,大家应该都僵持下去下去)18.反问有什么不足:基础不扎实,比如os,数据库,网络,编程语言(都没问我Java,过程中问我c++熟悉不,我技术栈都没敢写肯定不敢说熟悉啊),算法(撕的快但是讲不清,感觉鼠鼠是死记硬背),不是这不是基本今天全问的都是不扎实吗🙌面试感想:很常规,不难,但是鼠鼠真的太菜了毕竟第一次,回答的还算流利了,以后再接再厉
Esten:补一下4.的缓存一致性解决: 在开发过程中,先修改数据库再删除缓存,也会有短暂脏数据时间段,即在数据库修改过程中,其他线程读取缓存仍然命中,会返回脏数据,但是由于修改操作时间极短,只有极少线程会读取到缓存中的脏数据,在互联网业务下属于可接受范畴;反之先删除缓存,再修改数据库,可能会出现其他线程由于命中缓存失败,前往数据库构建缓存,由于数据库的修改还未完成,读取到脏数据构建缓存,该缓存在后续ttl中一直存在返回脏数据,导致前端请求数据大量出错。 总结:两种方式都会有返回脏数据的可能,但是后删只会有短暂时间(线程修改数据库时间)业务错误,先删缓存可能有整个ttl时间业务错误
查看17道真题和解析
点赞 评论 收藏
分享
/feed/main/detail/11bbad7bf65e46a4a18288d79ea4b252/discuss/869158187847512064/discuss/869521582958440448/feed/main/detail/152340addaeb4d72bdc1d7a0226ade92/discuss/868293959037026304/discuss/869118355582509056
03-30 20:12
已编辑
东南大学 C++
26.3.19 腾讯广告cpp一面
1.你做一下自我介绍。2.你的规划是什么?3.你说的是长期规划,那技术方向上有什么倾向?4.你有考研的计划吗?5.你是打算本科毕业直接工作吗?6.你们现在保研结果出来了吗?7.你现在有没有其他实习 offer?8.字节那边的实习没有继续做了吗?9.你现在不能再回原来的组实习了吗?10.如果原来实习的组给你 offer,你会去吗?11.你做的 C++ 客户端是 PC 端的吗?12.你们做的是一个 C++ SDK,对接 iOS、安卓和鸿蒙,是吗?题目一 / C++ 并发相关15.这段代码有什么问题?16.为什么这里会出现多线程问题?17.除了加锁,还有什么解决方法?18.你先解释一下 static 作用在变量上、作用在函数上有什么区别。19.如果这个函数是类里的普通成员函数,里面定义了一个 static 变量,再对它做 push_back,会有什么问题?20.为什么这个 static 变量不会每次调用都重新初始化?21.如果你用锁来解决,这个锁应该声明在哪里?22.如果这个类实例化出两个对象 A 和 B,它们都会调这个函数,那是不是也会操作同一个数组?23.那这里是不是应该用静态锁,或者类似的全局共享锁?24.除了用锁之外,还有没有别的解决办法?25.你提到原子变量,那你怎么理解原子变量?26.如果代码可以随便改,为什么不能把 static 去掉?27.把 static 去掉以后,能不能解决并发问题?28.如果把 static 去掉,会引入什么额外问题?C++ / 容器 / 数据结构29.你简历里提到用了 concurrent hashmap,可以介绍一下吗?30.哈希表的实现原理你知道吗?31.哈希表是有序的还是无序的?32.如果要把它做成“按插入顺序有序”,你会怎么做?33.标准库里的 std::map 底层实现原理你了解吗?实习项目追问34.你介绍一下你说的这个三档 TTL 和分层缓存框架。35.这个 key 是怎么设计的?36.value 里存的是什么?37.这个缓存是怎么更新的?怎么触发更新?38.这样的话使用方如果拿到的是过期值,是不是要多等一次回源时间?39.你们的缓存命中率大概是多少?40.你拿到这个 key 之后,怎么知道去访问哪一档缓存?41.这个分档是动态判断的,还是你们手动维护配置文件?题目二 / 设计与代码实现操作系统52.你对虚拟内存有什么了解?53.虚拟内存是怎么实现的?54.系统怎么找到被换到磁盘上的那块数据?55.这个地址映射是怎么设计的?56.这个映射关系的数据结构叫什么名字?SQL 优化 / 实习项目57.你之前做过 SQL 优化,是吧?58.解释一下什么是 SQL 签名化。59.这个服务是在后端部署的服务查数据库,还是端上的 SDK 查本地数据库?60.你查端上的数据库时,每次都要建立连接吗?61.你说多个 SQL 合并之后,只查最小时间戳,是什么意思?62.你们做这个优化的前提,是多个请求同时发过来,对吧?63.你们会去缓存这些请求吗?64.这个缓存多久?题目一二详见图片,正常面试一直在追问,然后不给反馈,全程冷脸。当然也认识到很多知识盲区了。很多不重要的问题删了,大多数是问实习。
点赞 评论 收藏
分享
/feed/main/detail/b84abbd92d6e415481028b5545999660/discuss/868293375105982464/discuss/868950545078284288
腾讯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. 表现评价:- 面试官反馈:基础扎实,但项目细节还需深挖。- 面试官人很好,收获良多!期待二面,但未必能二面(一成把握)
点赞 评论 收藏
分享
/feed/main/detail/08962a77b58b4186a6150cb9bd3adeb6/discuss/868152680538042368/discuss/868480475642281984
玩命加载中
写面经
发动态
发动态
发帖子
写文章

全站热榜

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