2025年最新总结,阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总。
Last updated Jul 7, 2026
37.2k
Stars
9.4k
Forks
35
Issues
+1
Stars/day
Attention Score
94
Language breakdown
Python 100.0%
▸ Files
click to expand
README
2025年最新总结,阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总。持续更新中。
- 阿里篇
- 华为篇
- 百度篇
- 腾讯篇
- 美团篇
- 头条篇
- 滴滴篇
- 京东篇
- MySQL篇
- Redis篇
- MongoDB篇
- Zookeeper篇
- Nginx篇
- 算法篇
- 内存篇
- cpu篇
- 磁盘篇
- 网络通信篇
- 安全篇
- 并发篇
阿里篇
1.1.1 如何实现一个高效的单向链表逆序输出?
1.1.2 已知sqrt(2)约等于1.414,要求不用数学库,求sqrt(2)精确到小数点后10位
1.1.3 给定一个二叉搜索树(BST),找到树中第 K 小的节点
1.1.4 LRU缓存机制
1.1.5 关于epoll和select的区别,以下哪些说法是正确的
1.1.6 从innodb的索引结构分析,为什么索引的 key 长度不能太长
1.1.7 MySQL的数据如何恢复到任意时间点?
1.1.8 什么是静态关联?什么是动态关联?
1.1.9 输入 ping IP 后敲回车,发包前会发生什么?
1.2.0 请解释下为什么鹿晗发布恋情的时候,微博系统会崩溃,如何解决?
1.2.1 现有一批邮件需要发送给订阅顾客,且有一个集群(集群的节点数不定,会动态扩容缩容)来负责具体的邮件发送任务,如何让系统尽快地完成发送?
1.2.2 有一批气象观测站,现需要获取这些站点的观测数据,并存储到 Hive 中。但是气象局只提供了 api 查询,每次只能查询单个观测点。那么如果能够方便快速地获取到所有的观测点的数据?
1.2.3 如何实现两金额数据相加(最多小数点两位)
1.2.4 关于并行计算的一些基础开放问题
1.2.5 请计算XILINX公司VU9P芯片的算力相当于多少TOPS,给出计算过程与公式
1.2.6 一颗现代处理器,每秒大概可以执行多少条简单的MOV指令,有哪些主要的影响因素
1.2.7 请分析 MaxCompute 产品与分布式技术的关系、当前大数据计算平台类产品的市场现状和发展趋势
1.2.8 对大数据平台中的元数据管理是怎么理解的,元数据收集管理体系是怎么样的,会对大数据应用有什么样的影响
1.2.9 你理解常见如阿里,和友商大数据平台的技术体系差异以及发展趋势和技术瓶颈,在存储和计算两个方面进行概述
1.3.0 虚函数是如何实现的?
1.3.1 最大频率栈
1.3.2 给定一个链表,删除链表的倒数第N个节点,并且返回链表的头结点
1.3.3 如果让你设计一个通用的、支持各种数据库秒级备份和恢复的系统,你会如何设计
1.3.4 如果让你来设计一个支持数据库、NOSQL 和大数据之间数据实时流动的数据流及处理的系统,你会考虑哪些问题?如何设计?
1.3.5 给定一个整数数组和一个整数,返回两个数组的索引,这两个索引指向的数字的加和等于指定的整数。需要最优的算法,分析算法的空间和时间复杂度
1.3.6 假如给你一个新产品,你将从哪些方面来保障它的质量?
1.3.7 请评估一下程序的执行结果?
华为篇
2.1.0 static有什么用途?(请至少说明两种)
2.1.1 变量的声明和定义有什么区别?
2.1.2 sizeof 和 strlen 的区别
2.1.3 C 语言的关键字 static 和 C++ 的关键字 static 有什么区别
2.1.4 C中的 malloc 和C++中的 new 有什么区别
2.1.5 写一个“标准”宏 MIN
2.1.6 一个指针可以是 volatile 吗
2.1.7 a 和&a 有什么区别
2.1.8 简述 C、C++程序编译的内存分配情况
2.1.9 简述 strcpy、sprintf 与 memcpy 的区别
2.2.0 设置地址为 0x67a9 的整型变量的值为 0xaa66
2.2.1 面向对象的三大特征
2.2.2 C++的空类有哪些成员函数
2.2.3 谈谈你对拷贝构造函数和赋值运算符的认识
2.2.4 用 C++设计一个不能被继承的类
2.2.5 访问基类的私有虚函数
2.2.6 简述类成员函数的重写、重载和隐藏的区别
2.2.7 简述多态实现的原理
2.2.8 链表和数组有什么区别
2.2.9 怎样把一个单链表反序
2.3.0 简述队列和栈的异同
2.3.1 能否用两个栈实现一个队列的功能
2.3.2 计算一颗二叉树的深度
2.3.3 编码实现直接插入排序
2.3.4 编码实现冒泡排序
2.3.5 编码实现直接选择排序
2.3.6 编程实现堆排序
2.3.7 编程实现基数排序
2.3.8 谈谈你对编程规范的理解或认识
2.3.9 short i = 0; i = i + 1L;这两句有错吗
2.4.0 &&和&、||和|有什么区别
2.4.1 C++的引用和 C 语言的指针有什么区别
2.4.2 在二元树中找出和为某一值的所有路径
2.4.3 typedef 和 define 有什么区别
2.4.4 关键字 const 是什么
2.4.5 static 有什么作用
2.4.6 extern 有什么作用
2.4.7 流操作符重载为什么返回引用
2.4.8 简述指针常量与常量指针区别
2.4.9 数组名和指针的区别
2.5.0 如何避免“野指针”
2.5.1 常引用有什么作用
2.5.2 编码实现字符串转化为数字
2.5.3 简述 strcpy、sprintf 与 memcpy 的区别
2.5.4 用 C 编写一个死循环程序
2.5.5 编码实现某一变量某位清 0 或置 1
2.5.6 评论下面这个中断函数
2.5.7 构造函数能否为虚函数
2.5.8 谈谈你对面向对象的认识
2.5.9 动态库和静态库的区别
百度篇
3.1.0 提高c++性能,你用过哪些方式去提升
3.1.1 引用和指针的区别?
3.1.2 从汇编层去解释一下引用
3.1.3 C++中的指针参数传递和引用参数传递
3.1.4 形参与实参的区别?
3.1.5 static的用法和作用?
3.1.6 静态变量什么时候初始化
3.1.7 const?
3.1.8 const成员函数的理解和应用?
3.1.9 指针和const的用法
3.2.0 mutable
3.2.1 extern用法?
3.2.2 int转字符串字符串转int?strcat,strcpy,strncpy,memset,memcpy的内部实现?
3.2.3 深拷贝与浅拷贝?
3.2.4 C++模板是什么,底层怎么实现的?
3.2.5 C语言struct和C++struct区别
3.2.6 虚函数可以声明为inline吗?
3.2.7 类成员初始化方式?构造函数的执行顺序 ?为什么用成员初始化列表会快一些?
3.2.8 成员列表初始化?
3.2.9 构造函数为什么不能为虚函数?析构函数为什么要虚函数?
3.3.0 析构函数的作用,如何起作用?
3.3.1 构造函数和析构函数可以调用虚函数吗,为什么?
3.3.2 构造函数的执行顺序?析构函数的执行顺序?构造函数内部干了啥?拷贝构造干了啥?
3.3.3 虚析构函数的作用,父类的析构函数是否要设置为虚函数?
3.3.4 构造函数析构函数可否抛出异常
3.3.5 类如何实现只能静态分配和只能动态分配
3.3.6 如果想将某个类用作基类,为什么该类必须定义而非声明?
3.3.7 什么情况会自动生成默认构造函数?
3.3.8 什么是类的继承?
3.3.9 什么是组合?
3.4.0 抽象基类为什么不能创建对象?
3.4.1 类什么时候会析构?
3.4.2 为什么友元函数必须在类内部声明?
3.4.3 介绍一下C++里面的多态?
3.4.4 用C语言实现C++的继承
3.4.5 继承机制中对象之间如何转换?指针和引用之间如何转换?
3.4.6 组合与继承优缺点?
3.4.7 左值右值
3.4.8 移动构造函数
3.4.9 C语言的编译链接过程?
3.5.0 vector与list的区别与应用?怎么找某vector或者list的倒数第二个元素
3.5.1 STL vector的实现,删除其中的元素,迭代器如何变化?为什么是两倍扩容?释放空间?
3.5.2 容器内部删除一个元素
3.5.3 STL迭代器如何实现
3.5.4 set与hash_set的区别
3.5.5 hashmap与map的区别
3.5.6 map、set是怎么实现的,红黑树是怎么能够同时实现这两种容器? 为什么使用红黑树?
3.5.7 如何在共享内存上使用stl标准库?
腾讯篇
4.1.0 map插入方式有几种?
4.1.1 STL中unorderedmap(hashmap)和map的区别,hash_map如何解决冲突以及扩容
4.1.2 vector越界访问下标,map越界访问下标?vector删除元素时会不会释放空间?
[4.1.3 map[]与find的区别?](https://github.com/0voice/interviewinternalreference/blob/master/2023adding.md#124map%E4%B8%8Efind%E7%9A%84%E5%8C%BA%E5%88%AB)
4.1.4 STL中list与queue之间的区别
4.1.5 STL中的allocator,deallocator
4.1.6 STL中hash_map扩容发生什么?
4.1.7 map如何创建?
4.1.8 vector的增加删除都是怎么做的?为什么是1.5倍?
4.1.9 函数指针?
4.2.0 说说你对c和c++的看法,c和c++的区别?
4.2.1 c/c++的内存分配,详细说一下栈、堆、静态存储区?
4.2.2 堆与栈的区别?
4.2.3 野指针是什么?如何检测内存泄漏?
4.2.4 悬空指针和野指针有什么区别?
4.2.5 内存泄漏
4.2.6 new和malloc的区别?
[4.2.7 delete p;与delete[]p,allocator](https://github.com/0voice/interviewinternalreference/blob/master/2023adding.md#138delete-p%E4%B8%8Edeletepallocator)
4.2.8 new和delete的实现原理, delete是如何知道释放内存的大小的额?
4.2.9 malloc申请的存储空间能用delete释放吗
4.3.0 malloc与free的实现原理?
4.3.1 malloc、realloc、calloc的区别
4.3.2 stdcall和cdecl的区别?
4.3.3 使用智能指针管理内存资源,RAII
4.3.4 手写实现智能指针类
4.3.5 内存对齐?位域?
4.3.6 结构体变量比较是否相等
4.3.7 位运算
4.3.8 为什么内存对齐
4.3.9 函数调用过程栈的变化,返回值和参数变量哪个先入栈?
4.4.0 怎样判断两个浮点数是否相等?
4.4.1 宏定义一个取两个数中较大值的功能
4.4.2 define、const、typedef、inline使用方法?
4.4.3 printf实现原理?
4.4.4 #include 的顺序以及尖叫括号和双引号的区别
4.4.5 lambda函数
4.4.6 hello world 程序开始到打印到屏幕上的全过程?
4.4.7 模板类和模板函数的区别是什么?
4.4.8 为什么模板类一般都是放在一个h文件中
4.4.9 C++中类成员的访问权限和继承权限问题。
4.5.0 cout和printf有什么区别?
4.5.1 重载运算符?
4.5.2 函数重载函数匹配原则
4.5.3 定义和声明的区别
4.5.4 C++类型转换有四种
4.5.5 全局变量和static变量的区别
4.5.6 静态成员与普通成员的区别
4.5.7 说一下理解 ifdef endif
4.5.8 隐式转换,如何消除隐式转换?
4.5.9 多继承的优缺点,作为一个开发者怎么看待多继承
4.6.0 迭代器++it,it++哪个好,为什么
4.6.1 模板和实现可不可以不写在一个文件里面?为什么?
4.6.2 在成员函数中调用delete this会出现什么问题?对象还可以使用吗?
4.6.3 智能指针的作用
4.6.4 auto_ptr作用
4.6.5 class、union、struct的区别
4.6.6 动态联编与静态联编
4.6.7 动态编译与静态编译
4.6.8 动态链接和静态链接区别
4.6.9 在不使用额外空间的情况下,交换两个数?
4.7.0 strcpy和memcpy的区别
[4.7.1 执行int main(int argc, char *argv[])时的内存结构](https://github.com/0voice/interviewinternalreference/blob/master/2023adding.md#183%E6%89%A7%E8%A1%8Cint-mainint-argc-char-argv%E6%97%B6%E7%9A%84%E5%86%85%E5%AD%98%E7%BB%93%E6%9E%84)
4.7.2 volatile关键字的作用?
4.7.3 讲讲大端小端,如何检测(三种方法)
4.7.4 查看内存的方法
4.7.5 空类会默认添加哪些东西?怎么写?
4.7.6 标准库是什么?
4.7.7 new、delete、operator new、operator delete、placement new、placement delete
4.7.8 为什么拷贝构造函数必须传引用不能传值?
4.7.9 空类的大小是多少?为什么?
4.8.0 你什么情况用指针当参数,什么时候用引用,为什么?
4.8.1 大内存申请时候选用哪种?C++变量存在哪?变量的大小存在哪?符号表存在哪?
美团篇
5.1.0 为什么会有大端小端,htol这一类函数的作用
5.1.1 静态函数能定义为虚函数吗?常函数?
5.1.2 this指针调用成员变量时,堆栈会发生什么变化?
5.1.3 静态绑定和动态绑定的介绍
5.1.4 设计一个类计算子类的个数
5.1.5 怎么快速定位错误出现的地方
5.1.6 虚函数的代价?
5.1.7 类对象的大小
5.1.8 移动构造函数
5.1.9 何时需要合成构造函数
5.2.0 何时需要合成复制构造函数
5.2.1 何时需要成员初始化列表?过程是什么?
5.2.2 程序员定义的析构函数被扩展的过程?
5.2.3 构造函数的执行算法?
5.2.4 构造函数的扩展过程?
5.2.5 哪些函数不能是虚函数
5.2.6 sizeof 和strlen 的区别
5.2.7 简述strcpy、sprintf与memcpy的区别
5.2.8 编码实现某一变量某位清0或置1
5.2.9 将“引用”作为函数参数有哪些特点?
5.3.0 分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。
5.3.1 局部变量全局变量的问题?
5.3.2 数组和指针的区别?
5.3.3 C++如何阻止一个类被实例化?一般在什么时候将构造函数声明为private?
5.3.4 如何禁止自动生成拷贝构造函数?
5.3.5 assert与NDEBUGE
5.3.6 Denug和release的区别
5.3.7 main函数有没有返回值
5.3.8 写一个比较大小的模板函数
5.3.9 c++怎么实现一个函数先于main函数运行
5.4.0 虚函数与纯虚函数的区别在于
5.4.1 智能指针怎么用?智能指针出现循环引用怎么解决?
5.4.2 strcpy函数和strncpy函数的区别?哪个函数更安全?
5.4.3 为什么要用static_cast转换而不用c语言中的转换?
5.4.4 成员函数里memset(this,0,sizeof(*this))会发生什么
5.4.5 方法调用的原理(栈,汇编)
5.4.6 回调函数的作用
随机数的生成
5.4.8 变量的声明和定义有什么区别?
5.4.9 请简述#ifdef、#else、#endif、和#ifndef的作用是?
头条篇
6.1.0 请写出int、bool、float、指针变量与"零值"比较的if语句?
6.1.1 结构体是否可以直接赋值?
6.1.2 sizeof和strlen的区别?
6.1.3 C语言和C++语言中的关键字static有什么区别?
6.1.4 C语言的malloc和C++中的new有什么区别?
6.1.5 请写一个标准宏MIN?
6.1.6 ++i和i++的区别?
6.1.7 关键字volatile有什么作用?
6.1.8 一个参数可以既是const又是volatile吗?
6.1.9 *a和&a有什么区别?
6.2.0 用C语言编写一个死循环程序?
6.2.1 全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的?
6.2.2 请简述C/C++程序编译的内存分配情况?
6.2.3 请简述strcpy、sprintf和memcpy的区别?
6.2.4 请解释((void ()())0)()的含义?
6.2.5 C语言的指针和引用和C++的有什么区别?
🔗 More in this category