📡
首页
🏢
企业
📚
考试
📖
攻略
📰
日报
👤
我的
校招宝-应届生校园招聘情报站
聚合秋招/春招/实习/提前批
面试真题
技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
33 道
按赛道
技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / 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)
按难度
简单(9)
中等(23)
困难(1)
按企业
点选查看该公司全部题目
百度(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)
技术岗 · 企业:字节跳动
33 道 · 点击进入查看参考答案
简单
C++
怎么解决C++菱形继承
结论:C++菱形继承用虚继承解决。要点:1.中间类继承公共基类加virtual关键字(如class B: virtual public A);2.虚继承使底层基类在派生类对象中仅一份实例,消除二义性;3.虚基类构造由最底…
🎤 字节跳动
简单
C++
C++多态解决了什么问题
多态解决用统一基类接口操作不同派生类对象的问题,消除大量类型分支判断,提升代码扩展性与可维护性。C++含静态多态(重载、模板,编译期绑定)和动态多态(虚函数,运行期绑定)。动态多态核心:基类声明virtual函数,派生类…
🎤 字节跳动
简单
C++
enum和enum class的区别?
结论:enum class是C++11强类型枚举,比传统enum更安全。核心区别:1.作用域:传统enum枚举量在外层作用域,易冲突;enum class枚举量在类作用域内,需用Enum::Val访问。2.隐式转换:传统…
🎤 字节跳动
简单
Java
面向对象编程的三大核心概念和5大基本原则
结论:三大核心为封装、继承、多态;五大基本原则(SOLID)为单一职责、开放封闭、里氏替换、接口隔离、依赖倒置。原理:封装隐藏属性与实现,通过公有方法访问;继承实现代码复用并建立类层次;多态允许父类引用指向子类对象,动态…
🎤 字节跳动
简单
其他
面对对象的三大特征及特性
结论:面向对象三大特征为封装、继承、多态。核心要点:1.封装:将数据和操作封装在类内,私有化属性公开方法,降低耦合保障安全;2.继承:子类通过extends获取父类非私有成员,实现复用与层次化;3.多态:父类引用指向子类…
🎤 字节跳动
简单
数据库
Redis SETNX与SET NX 的区别
结论:SETNX是独立命令仅做存在则设值,SET NX是SET命令的选项可原子附带过期等参数。区别:1.SETNX key value:key不存在时设值,返回1/0,无法同时设过期,需额外EXPIRE;2.SET ke…
🎤 字节跳动
简单
算法
算法 反转链表
结论:单链表反转可用迭代或递归,迭代法空间O(1)最优。核心要点:迭代用三指针prev、cur、next;初始prev=null,cur=head;循环:next=cur.next暂存,cur.next=prev反转指向…
🎤 字节跳动
简单
算法
算法 镜像二叉树
结论:镜像二叉树即将每个节点的左右子树互换,得到原树的镜像。核心要点:采用递归,若当前节点为空直接返回;否则递归镜像左子树和右子树,然后交换当前节点的左右指针;也可使用层序遍历(队列)逐个交换节点左右孩子。本质是对树中所…
🎤 字节跳动
简单
算法
算法 求链表相交的点
结论:求两单链表相交的起始节点,最优用双指针法,时间O(n)空间O(1)。核心要点:设链表A长度a+c,B长度b+c,c为公共尾部;指针pA从A头走,到尾后跳到B头;pB从B头走,到尾后跳到A头;因pA走a+c+b,pB…
🎤 字节跳动
中等
C++
如何定义只能在堆上生成对象的类
将析构函数设为private或protected并提供静态工厂方法,禁止栈上分配。核心要点:栈对象离开作用域需调用析构,若析构私有则编译报错;堆对象由delete显式调用,可在类内静态方法或友元中访问私有析构;也可将构造…
🎤 字节跳动
中等
C++
手撕 unique_ptr
结论:unique_ptr是独占所有权智能指针,手撕需实现移动语义并禁止拷贝。核心要点:1. 内部持有裸指针T* ptr和删除器(默认delete);2. 析构调用删除器释放资源;3. 禁用拷贝构造和拷贝赋值(=dele…
🎤 字节跳动
中等
C++
手撕LRUCache
结论:LRUCache由哈希表+双向链表组成,实现O(1)访问与淘汰。核心要点:1)unordered_map<int, list<pair<int,int>>::iterator>记录key到链表节点迭代器;2)lis…
🎤 字节跳动
中等
C++
C++多继承是什么?有什么问题?怎么解决的?
多继承指一个派生类同时继承多个基类,可组合多类能力。问题:菱形继承引发数据冗余与二义性,如B、C继承A,D继承B和C,D内含两份A成员,访问A成员时产生歧义。解决:采用虚继承(virtual public),使公共基类在…
🎤 字节跳动
中等
C++
C++多态相关
C++多态相关核心是实现机制:虚函数与虚表。基类声明virtual函数,派生类重写(签名一致);每个含虚函数的类有虚函数表(vtable)存函数指针,对象内含虚表指针(vptr)指向所属类vtable。调用虚函数时经vp…
🎤 字节跳动
中等
C++
C++weak_ptr
结论:weak_ptr是弱引用智能指针,配合shared_ptr使用,不增加引用计数,解决循环引用和临时所有权。要点:1.由shared_ptr构造如auto wp=weak_ptr(sp); 2.不拥有对象,不影响生命…
🎤 字节跳动
中等
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.…
🎤 字节跳动
中等
Go
defer的作用与底层原理
结论:defer使函数延迟到当前函数返回前执行,用于资源清理和流程控制;底层由编译器插入runtime调用并维护_defer链表。作用:确保资源释放(如文件、锁)、panic恢复、代码逻辑分离。底层:Go编译器在函数调用…
🎤 字节跳动
中等
Go
go中协程间通信的方法有哪些
结论:Go协程间通信主要两种方法:使用通道(channel)和共享内存加同步原语。核心要点:1.Channel是Go推荐方式,遵循“通过通信共享内存”,分为无缓冲和有缓冲,可传递数据或同步信号;2.共享内存方式需配合sy…
🎤 字节跳动
中等
Go
Golang 内存逃逸现象是什么
结论:内存逃逸指局部变量本应栈分配,因生命周期超出函数而被编译器分配到堆上。核心要点:Go编译器做静态逃逸分析,若变量在函数返回后仍被引用则逃逸;常见情况:返回变量指针、被闭包捕获、赋值给接口、切片/map动态增长导致底…
🎤 字节跳动
第 1 / 2 页
下一页 ›
查看「字节跳动」全部在招岗位与笔面经 ›
题目整理自公开面经,答案由校招宝自研生成,仅供参考
首页
企业
考试
攻略
日报
我的