面试真题

技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
19 道

按赛道技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分

按方向/形式点选即筛,再点「全部」还原

按难度

按企业点选查看该公司全部题目

技术岗 · 难度:困难19 道 · 点击进入查看参考答案

困难AI算法
GEMM(矩阵乘法)优化
结论:GEMM优化核心在提升缓存命中与并行度,常用分块、向量化、多线程。核心要点:1)分块(tiling)将矩阵分小块适配L1/L2缓存,减少访存;2)循环重排与向量化(SIMD)利用CPU向量指令;3)多线程(Open…
🎤 百度
困难AI算法
GPU算子优化方法
结论:GPU算子优化核心在于隐藏延迟、提高并行度和带宽利用率。关键方法:1. 内存优化:用共享内存缓存频繁数据,合并全局内存访问(连续线程访问连续地址)减少事务;2. 计算优化:循环展开、向量化指令或Tensor Cor…
🎤 百度
困难AI算法
DPO 和 PPO 的原理与异同?
结论:PPO是基于强化学习的策略优化算法,需奖励模型;DPO是直接偏好优化,绕过奖励模型直接用偏好数据训练。原理与异同:1.PPO:在RLHF中,训练奖励模型拟合人类偏好,Actor生成回答,Critic评估,用clip…
🎤 京东
困难C++
菱形继承的内存模型,虚拟继承后会怎么样
结论:菱形继承(如B、C继承A,D继承B和C)导致A子对象在D中有两份,引发二义性和空间浪费;虚拟继承使A成为虚基类,D中仅一份A实例。要点:1)非虚拟内存:D对象含B子对象(含A)和C子对象(含A),A成员重复;2)虚…
🎤 网易
困难C++
内存对齐相关面试题,DPDK无锁队列为例阐述,内存对齐的作用?
结论:内存对齐指变量地址按其对齐系数(如4/8/64字节)存放;DPDK无锁队列中通过对齐缓存行消除伪共享,提升多核性能。作用:1. 硬件约束:部分架构访问未对齐地址触发异常;2. 性能:对齐后单次总线读取,避免拆分成两…
🎤 美团
困难C++
手撕shared_ptr
结论:shared_ptr通过引用计数实现共享所有权智能指针。核心要点:1)类内含T* ptr和int* cnt(或atomic<int>*);2)构造时cnt=new int(1);3)拷贝构造复制ptr和cnt并(*…
🎤 字节跳动
困难C++
STL 空间配置器实现原理,malloc中维护了一个内存池,为什么需要基于内存池的空间配置器?
结论:STL空间配置器分两级,一级直接malloc,二级对<128B小块用内存池+自由链表。原理:malloc虽内部有池,但通用分配带元数据开销(如size头、对齐碎片),频繁小分配易碎且慢;二级配置器将小块按8倍数划1…
🎤 拼多多
困难Go
golang gc 三色标记法
结论:三色标记法是Go并发GC的核心,用黑灰白三色追踪对象可达性。核心要点:1.初始对象全白,根对象(栈、全局)置灰;2.标记过程:取灰对象,其引用子对象变灰,自身变黑,直至无灰;剩余白对象不可达被回收;3.并发标记需写…
🎤 百度
困难Java
ConcurrentHashMap 源码分析
结论:JDK1.8 ConcurrentHashMap采用数组+链表+红黑树,以CAS+synchronized实现线程安全,取代1.7分段锁。要点:1.结构:table数组,冲突链表转红黑树(阈值8/64)。2.put…
🎤 阿里巴巴
困难Java
JNI 效率优化怎么做?
结论:JNI效率优化核心在于减少跨语言调用开销、降低数据拷贝、缓存元数据。要点:1) 批量传递数据,合并多次小调用为数组/结构体单次调用;2) 缓存jclass、jfieldID、jmethodID,避免每次JNI调用查…
🎤 阿里巴巴
困难其他
Bank Conflict优化
结论:Bank Conflict指GPU共享内存多个线程同时访问同一bank导致串行化,降低带宽。优化:1.调整数据布局,如结构体数组转数组结构体;2.添加Padding:在数组行间插无用元素使相邻线程访问不同bank;…
🎤 百度
困难后端
抖音消息推送架构设计讨论
结论:消息推送架构需支持海量用户实时分发,核心为长连接网关+消息队列解耦。设计要点:1.客户端与接入层维持TCP/WebSocket长连接,心跳保活;2.业务侧产生消息写入Kafka,按用户ID哈希分片;3.推送服务消费…
🎤 百度
困难后端
介绍一下raft协议
结论:Raft是分布式共识算法,用于多节点间复制日志并保持一致,角色分Leader、Follower、Candidate。原理:1)选举:节点随机超时变为候选者,获多数票成Leader,任期term递增;2)日志复制:L…
🎤 百度
困难后端
开放性问题,设计微信的海量数据存储系统
结论:微信海量数据存储需分层设计,核心包括消息、关系链、朋友圈、用户资料等,采用分布式存储与缓存结合。 要点: - 消息存储:按用户ID哈希分库分表,采用KV存储(如HBase)或自研,冷热分离; - 关系链:图数据库或…
🎤 腾讯
困难后端
手撕多线程 Reactor
结论:Reactor模式采用事件驱动,主线程监听新连接并分发给多线程工作池;核心包括EventLoop、Channel、Poller(如epoll)。原理:基于I/O多路复用,主Reactor用epoll_wait获取连…
🎤 腾讯
困难大数据
4 亿行数据怎么去重?
结论:分治+排序/哈希,或借助分布式框架。核心要点:若内存小,按去重键哈希分片到多个文件,每文件加载进内存用Set去重;或外部排序(多路归并)使相同键相邻后去重;分布式用Spark SQL SELECT DISTINCT…
🎤 阿里巴巴
困难大数据
如果让你从0到1设计一个数仓全栈,你会怎么设计?
结论:数仓全栈需分层建模、离实时一体与数据治理。思路:1.数据源:业务库Binlog、前端埋点;2.采集:DataX/Sqoop离线,Flink CDC实时;3.存储:HDFS+Hive数仓,Kafka缓冲流;4.计算:…
🎤 阿里巴巴
困难数据库
跳表怎么做并发的?以RocksDB为例阐述
结论:跳表并发多采用无锁或细粒度锁,RocksDB跳表读无锁、写用原子操作+内存屏障,允许并发读和单写或有限并发写。原理:RocksDB MemTable跳表实现中,查询完全无锁遍历;插入时,从底向上插入,使用std::…
🎤 腾讯
困难数据库
Redis 和 MySQL 如何保证一致性?
常用Cache Aside Pattern(旁路缓存)保证最终一致:读先缓存未命中读库回写;写先更新MySQL再删Redis缓存(而非更新缓存,避免脏数据)。问题:删缓存失败或并发读写不一致。解决:1.延迟双删(更新库-…
🎤 腾讯
题目整理自公开面经,答案由校招宝自研生成,仅供参考