📡
首页
🏢
企业
📚
考试
📖
攻略
📰
日报
👤
我的
校招宝-应届生校园招聘情报站
聚合秋招/春招/实习/提前批
面试真题
技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
357 道
按赛道
技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分
全部赛道(2508)
技术岗(641)
非技术岗(1867)
按方向/形式
点选即筛,再点「全部」还原
全部(641)
数据库(114)
C++(85)
Go(82)
Java(69)
网络(65)
操作系统(54)
后端(39)
前端(37)
算法(31)
运维(22)
其他(17)
AI算法(13)
大数据(6)
测试(4)
产品(2)
Python(1)
按难度
简单(265)
中等(357)
困难(19)
按企业
点选查看该公司全部题目
百度(161)
腾讯(139)
通用(87)
阿里巴巴(62)
网易(55)
京东(49)
中国储备粮管理集团有限公司(43)
字节跳动(34)
大华股份(11)
美团(10)
Momenta(8)
小鹏汽车(8)
深信服(8)
Shopee(7)
小米(7)
拼多多(7)
滴滴(7)
虎牙(6)
读书郎(6)
金山(6)
小红书(5)
快手(5)
搜狐(5)
闪送(5)
技术岗 · 难度:中等
357 道 · 点击进入查看参考答案
中等
C++
lambda引用捕获的风险
结论:引用捕获不延长变量生命周期,易导致悬空引用和未定义行为。核心风险:1. 返回含引用捕获的lambda,局部变量销毁后调用即悬空;2. 多线程/异步中,原作用域提前结束;3. 循环中用引用捕获循环变量,所有lambd…
🎤 腾讯
中等
C++
malloc底层实现以及线程安全
结论:malloc底层常用ptmalloc(glibc),向内核brk/mmap申请堆/匿名映射,分割为内存块管理;线程安全靠arena锁与线程本地tcache。原理:分配器维护fast/small/large bins…
🎤 腾讯
中等
C++
malloc是如何分配内存的,free怎么知道该释放多少内存?
结论:malloc从系统申请大块内存池(brk堆或mmap映射)后自行切割;free通过块头部元数据知大小。原理:实际分配时多划出头部(如8字节存size和标志),返回用户指针指向数据区;free将指针前移获头部读siz…
🎤 腾讯
中等
C++
map的两种扩容方式
结论:std::map基于红黑树,无容量扩容概念,节点动态创建;若指unordered_map,其扩容方式为rehash,常见两种策略:桶数组翻倍(2的幂)或按质数序列递增。原理:map是节点式容器,插入新元素直接分配节…
🎤 Momenta
中等
C++
map和unordered_map的区别?红黑树与AVL树的区别?
结论:map底层红黑树,有序、查找O(log n);unordered_map底层哈希表,无序、平均O(1)。红黑树弱平衡,AVL强平衡。要点:map元素按key比较排序,支持范围查询,空间开销每个节点含颜色等;unor…
🎤 Shopee
中等
C++
map是线程安全的吗?如何实现线程安全的map
结论:std::map不是线程安全的,多线程并发读写需外部同步。实现方式:1) 粗粒度锁:用std::mutex包裹所有操作,写时独占,读时共享(shared_mutex);2) 细粒度分段锁:将key空间分片,每片独立…
🎤 字节跳动
中等
C++
printf是怎么实现的
结论:printf是C标准库函数,解析格式串与可变参数,格式化后通过系统调用write输出。原理:1. 用va_list取可变参数,按%d/%s从栈或寄存器取参;2. 转字符串写入用户态stdout缓冲区(行缓冲);3.…
🎤 字节跳动
中等
C++
static_cast与dynamic_cast的区别?dynamic_cast的原理
结论:static_cast是编译期类型转换,无运行时检查;dynamic_cast用于多态类型向下转型,有RTTI运行时检查,失败返回nullptr或抛异常。区别:1. static_cast可转相关类型(数值、向上转…
🎤 英伟达
中等
C++
std::move与std::forward的区别
结论:std::move无条件将实参转为右值引用以触发移动语义;std::forward完美转发,保留实参原值类别。原理:move本质是static_cast<T&&>(t),仅类型转换不移动数据;forward利用引用…
🎤 网易
中等
C++
unique_ptr是怎么实现的?unique_ptr 和 shared_ptr 删除器的设计差异?
结论:unique_ptr通过独占裸指针和删除器实现单一所有权无引用计数;shared_ptr通过控制块含引用计数和删除器实现共享。核心要点:unique_ptr实现为模板类含T*指针和删除器(默认delete),禁止拷…
🎤 哔哩哔哩
中等
C++
weak_ptr如何实现的?如何使用weak_ptr?
结论:weak_ptr是弱引用智能指针,不拥有对象所有权,用于安全观测shared_ptr管理对象。要点:实现上内部含指向shared_ptr控制块(含强引用计数、弱引用计数、对象指针)的指针,构造/赋值只增弱引用计数不…
🎤 哔哩哔哩
中等
C++
编译、链接、重定位
结论:编译将源码转汇编,汇编生成可重定位目标文件,链接合并目标文件并解析符号,重定位修正地址。要点:编译分预处理、编译、汇编,检查语法生成汇编,产出.o文件含未决符号引用且地址从0始;链接进行符号解析和重定位,把相对偏移…
🎤 百度
中等
C++
类成员初始化顺序?
结论:C++类成员初始化顺序固定为:静态成员(程序启动)->基类构造->按声明顺序初始化非静态成员->构造函数体。要点:1)静态成员变量在首次使用前初始化,且只一次;2)基类构造函数先于派生类;3)非静态成员按在类内声明…
🎤 小米
中等
C++
类对象的大小由哪些因素决定?
结论:C++类对象大小由非静态数据成员、虚函数指针及内存对齐填充决定。因素:1)非静态成员变量总和(静态成员、成员函数不占对象空间);2)若存在虚函数或继承虚类,对象含vptr(通常8字节,32位4字节);3)继承时基类…
🎤 虎牙
中等
C++
C++ 四种强制类型转换
结论:C++提供四种命名强制转换以增强类型安全:static_cast、dynamic_cast、const_cast、reinterpret_cast。要点:static_cast用于编译期已知类型的转换,如数值提升、…
🎤 百度
中等
C++
C++ Pimpl了解吗?有什么好处?
结论:Pimpl(Pointer to Implementation)是隐藏类实现细节的惯用法,在头文件仅前置声明实现结构体并用智能指针持有。要点:类A中定义struct Impl; std::unique_ptr<Im…
🎤 阿里巴巴
中等
C++
C++17的常用特性
结论:C++17常用特性提升表达力与性能。要点:结构化绑定auto [a,b]=pair简化解构;if constexpr编译期分支优化模板;std::optional表示可能无值,std::variant类型安全联合,…
🎤 阿里巴巴
中等
C++
C++调用C函数,C调用C++函数,原理是什么?
结论:C++与C互调核心在于名称修饰(name mangling)不同,用extern "C"统一符号。要点:C++为支持重载将函数名修饰为复杂符号(如_Z3fooi),C保持原样(foo);C++调用C:在C++中用e…
🎤 思必驰
中等
C++
double 转 int64 用 `reinterpret_cast` 和 `static_cast` 区别
结论:static_cast做数值类型转换(截断小数),reinterpret_cast仅重新解释比特模式不做数值转换。区别:1.static_cast<int64_t>(d)将double值3.14转为int64_t的…
🎤 百度
中等
C++
vector处理大规模数据时的优化
结论:主要通过减少内存重分配、降低拷贝开销来优化。核心要点:1. 预先reserve()预留足够容量,避免多次扩容拷贝;2. 使用emplace_back()原地构造对象,减少临时对象拷贝;3. 若数据量超内存,采用分块…
🎤 Momenta
‹ 上一页
第 3 / 18 页
下一页 ›
题目整理自公开面经,答案由校招宝自研生成,仅供参考
首页
企业
考试
攻略
日报
我的