2023年最新总结,阿里,腾讯,百度,美团,头条等技术面试题目,以及答案,专家出题人分析汇总。持续更新中。 阿里篇 华为篇 百度篇 腾讯篇 美团篇 头条篇 滴滴篇 京东篇 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中unordered_map(hash_map)和map的区别,hash_map如何解决冲突以及扩容 4.1.2 vector越界访问下标,map越界访问下标?vector删除元素时会不会释放空间? 4.1.3 map[]与find的区别? 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 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[])时的内存结构 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++的有什么区别? 6.2.6 typedef和define有什么区别? 6.2.7 指针常量和常量指针有什么区别? 6.2.8 请简述队列和栈的异同? 6.2.9 如何设置地址为0x67a9的整型变量的值为0xaa66? 6.3.0 请编程实现字符串转换为数字? 6.3.1 C语言的结构体和C++的有什么区别? 6.3.2 简述指针常量与常量指针的区别? 6.3.3 如何避免"野指针"? 6.3.4 句柄和指针的区别和联系是什么? 6.3.5 new/delete与malloc/free的区别是什么? 6.3.6 请说一说extern "C"? 6.3.7 请说一说C++中struct和class的区别是什么? 6.3.8 new、delete、malloc、free关系 6.3.9 delete与 delete []区别 6.4.0 C++有哪些性质(面向对象特点) 6.4.1 子类析构时要调用父类的析构函数吗? 6.4.2 多态,虚函数,纯虚函数 6.4.3 求下面函数的返回值(微软) 6.4.4 什么是“引用”?申明和使用“引用”要注意哪些问题? 6.4.5 将“引用”作为函数参数有哪些特点? 6.4.6 在什么时候需要使用“常引用”? 6.5.0 结构与联合有和区别? 6.5.1 试写出程序结果 6.5.2 重载(overload)和重写(overried,有的书也叫做“覆盖”)的区别? 6.5.3 有哪几种情况只能用intialization list 而不能用assignment? 滴滴篇 7.1.0 C++是不是类型安全的? 7.1.1 main 函数执行以前,还会执行什么代码? 7.1.2 描述内存分配方式以及它们的区别? 7.1.3 分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。 7.1.4 请说出const与#define 相比,有何优点? 7.1.5 简述数组与指针的区别? 7.1.6 int (*s[10])(int) 表示的是什么? 7.1.7 栈内存与文字常量区 7.1.8 将程序跳转到指定内存地址 7.1.9 int id[sizeof(unsigned long)];这个对吗?为什么? 7.2.0 引用与指针有什么区别? 7.2.1 const 与 #define 的比较 ,const有什么优点? 京东篇 8.1.0 内存的分配方式有几种? 8.1.1 基类的析构函数不是虚函数,会带来什么问题? 8.1.2 全局变量和局部变量有什么区别?是怎么实现的?操作系统和编译器是怎么知道的? 8.1.3 const关键字(反义词mutable) 8.1.4 static关键字 8.1.5 extern关键字 8.1.6 指针和引用的区别 8.1.7 explicit是干什么用的 ? 8.1.8 浅拷贝与深拷贝?为什么要使用深拷贝? 8.1.9 深入谈谈堆和栈? 8.2.0 内存的静态分配和动态分配的区别? 8.2.1 什么是继承?什么是多态? 8.2.2 虚函数与纯虚函数的区别?含有纯虚函数的类叫什么? mysql篇 9.1.0 主键 超键 候选键 外键 9.1.1 数据库事务的四个特性及含义 9.1.2 视图的作用,视图可以更改么? 9.1.3 drop,delete与truncate的区别 9.1.4 索引的工作原理及其种类 9.1.5 连接的种类 9.1.6 数据库范式 9.1.7 数据库优化的思路 9.1.8 存储过程与触发器的区别 redis篇 10.1.0 使用Redis有哪些好处? 10.1.1 redis相比memcached有哪些优势? 10.1.2 redis常见性能问题和解决方案 10.1.3 MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据 10.1.4 Memcache与Redis的区别都有哪些? 10.1.5 Redis 常见的性能问题都有哪些?如何解决? 10.1.6 redis 最适合的场景 10.1.7 Redis的同步机制了解么? 10.1.8 是否使用过Redis集群,集群的原理是什么? 10.1.9 redis集群如何保证一致性? MongoDB篇 11.1.0 什么是MongoDB? 11.1.1 MongoDB是由哪种语言写的? 11.1.2 MongoDB的优势有哪些? 11.1.3 什么是数据库? 11.1.4 什么是集合? 11.1.5 什么是文档? 11.1.6 MongoDB和关系型数据库术语对比图 11.1.7 什么是“mongod”? 11.1.8 “mongod”参数有什么? 11.1.9 什么是“mongo”? 11.2.0 MongoDB哪个命令可以切换数据库? 11.2.1 什么是非关系型数据库? 11.2.2 非关系型数据库有哪些类型? 11.2.3 为什么用MongoDB? 11.2.4 在哪些场景使用MongoDB? 11.2.5 MongoDB中的命名空间是什么意思? 11.2.6 哪些语言支持MongoDB? 11.2.7 在MongoDB中如何创建一个新的数据库? 11.2.8 在MongoDB中如何查看数据库列表? 11.2.9 MongoDB中的分片是什么意思? 11.3.0 如何查看使用MongoDB的连接? 11.3.1 什么是复制? 11.3.2 在MongoDB中如何在集合中插入一个文档? 11.3.3 在MongoDB中如何除去一个数据库? 11.3.4 在MongoDB中如何创建一个集合? 11.3.5 在MongoDB中如何查看一个已经创建的集合? 11.3.6 在MongoDB中如何删除一个集合? 11.3.7 为什么要在MongoDB中使用分析器? 11.3.8 MongoDB支持主键外键关系吗? 11.3.9 MongoDB支持哪些数据类型? 11.4.0 为什么要在MongoDB中用"Code"数据类型? 11.4.1 为什么要在MongoDB中用"Regular Expression"数据类型? 11.4.2 为什么在MongoDB中使用"Object ID"数据类型? 11.4.3 如何在集合中插入一个文档? 11.4.4 “ObjectID”有哪些部分组成? 11.4.5 在MongoDB中什么是索引? 11.4.6 如何添加索引? 11.4.7 MongoDB有哪些可替代产品? 11.4.8 如何查询集合中的文档? 11.4.9 用什么方法可以格式化输出结果? 11.5.0 如何使用"AND"或"OR"条件循环查询集合中的文档? 11.5.1 在MongoDB中如何更新数据? 11.5.2 如何删除文档? 11.5.3 在MongoDB中如何排序? 11.5.4 什么是聚合? 11.5.5 在MongoDB中什么是副本集? 11.5.6 Mongodb存储特性与内部原理? Zookeeper篇 12.1.0 zookeeper是什么? 12.1.1 zookeeper提供了什么? 12.1.2 zookeeper文件系统 12.1.3 zookeeper的四种类型的znode 12.1.4 zookeeper通知机制 12.1.5 zookeeper有哪些应用场景? 12.1.6 zk的命名服务 12.1.7 zk的配置管理服务 12.1.8 zk的集群管理 12.1.9 zk的分布式锁 12.2.0 zk队列管理 12.2.1 zk数据复制 12.2.2 zk的工作原理 12.2.3 zk是如何保证事物的顺序一致性 12.2.4 zk集群下server工作状态 12.2.5 zk是如何选举Leader的? 12.2.6 zk同步流程 12.2.7 分布式通知和协调 12.2.8 zk的session机制 其他中大厂700道精选面试题 13.1.0 多重继承如何解决? 13.1.1 派生类与虚函数概述 13.1.2 为什么析构函数要定义为虚函数?哪些函数不能是虚函数? 13.1.3 析构函数可以抛出异常吗?为什么不能抛出异常?除了资源泄露,还有其他需考虑的因素吗? 13.1.4 动态链接库的两种使用方法及特点? 13.1.5 STL各类容器(3个顺序+4个关联+1个无序关联)的实现原理及使用情形 13.1.6 什么是STL? 13.1.7 什么是智能指针?底层实现?) 13.1.8 多进程与多线程之间的区别?(最好要了解透彻) 13.1.9 什么是进程池和线程池? 13.2.0 进程间的通信方式有哪些?如何实现的? 13.2.1 简述inux中的同步与异步机制? 13.2.2 简述阻塞与非阻塞? 13.2.3 简述Linux中的5种I/O模式? 13.2.4 什么是死锁?四个死锁的条件?避免死锁的方法? 13.2.5 Linux的任务调度机制是什么? 13.2.6 标准库函数与系统调用的区别? 13.2.7 分别简述三次握手与四次挥手的过程? 13.2.8 tcp和udp之间的区别? 13.2.9 epoll有哪些触发模式? 13.3.1 C和C++的区别 13.3.2 C++中指针和引用的区别 13.3.3 结构体struct和共同体union(联合)的区别 13.3.4 #define和const的区别 13.3.5 重载overload,覆盖(重写)override,隐藏(重定义)overwrite,这三者之间的区别 13.3.6 new、delete、malloc、free之间的关系 13.3.7 delete和delete[]的区别 13.3.8 虚函数、纯虚函数 13.3.9 STL库用过吗?常见的STL容器有哪些?算法用过几个? 13.4.1 const知道吗?解释一下其作用 13.4.2 虚函数是怎么实现的 13.4.3 堆和栈的区别 13.4.4 关键字static的作用 13.4.5 STL中map和set的原理(关联式容器) 13.4.6 #include<file.h> #include "file.h" 的区别 13.4.7 什么是内存泄漏?面对内存泄漏和指针越界,你有哪些方法? 13.4.8 定义和声明的区别 13.4.9 C++文件编译与执行的四个阶段 13.5.1 STL中unordered_map和map的区别 13.5.2 C++的内存管理 13.5.3 构造函数为什么一般不定义为虚函数?而析构函数一般写成虚函数的原因 ? 13.5.4 静态绑定和动态绑定的介绍 13.5.5 引用是否能实现动态绑定,为什么引用可以实现 13.5.6 深拷贝和浅拷贝的区别 13.5.7 什么情况下会调用拷贝构造函数(三种情况) 13.5.8 C++的四种强制转换 13.5.9 调试程序的方法 13.6.1 extern“C”作用 13.6.2 typdef和define区别 13.6.3 引用作为函数参数以及返回值的好处 13.6.4 纯虚函数 13.6.5 什么是野指针 13.6.6 线程安全和线程不安全 13.6.7 C++中内存泄漏的几种情况 13.6.8 栈溢出的原因以及解决方法 13.6.9 C++标准库vector以及迭代器 13.7.1 C++中vector和list的区别 13.7.2 C++中的基本数据类型及派生类型 13.7.3 友元函数和友元类 13.7.4 c++函数库中一些实用的函数 13.7.5 线程的基本概念、线程的基本状态及状态之间的关系? 13.7.6 线程与进程的区别? 13.7.7 C++多线程有几种实现方法,都是什么? 13.7.8 C和C++的区别 13.7.9 封装、继承、多态 13.8.1 虚函数的作用及其实现原理 13.8.2 深拷贝和浅拷贝(值拷贝和位拷贝) 13.8.3 虚函数、纯虚函数怎么实现 13.8.4 为什么要有纯虚函数 13.8.5 纯虚函数 13.8.6 为什么要有虚析构函数 13.8.7 构造函数能不能是虚函数 13.8.8 C++里面构造函数能有返回值吗? 13.8.9 构造函数和析构函数能被继承吗? 13.9.1 C++中Overload、Overwrite及Override的区别 13.9.2 一个空的class类里有什么 13.9.3 C++中一个空类的大小为什么是1? 13.9.4 一个结构体中有一个int,一个char,一个static int,问这个结构体占多少内存?(涉及到内存对齐机制) 13.9.5 结构体与联合体的区别 13.9.6 函数与宏的差别 13.9.7 宏函数和inline函数的异同点 13.9.8 define 和 typedef 区别 13.9.9 标准C++中的include “” 与<>的区别 14.1.1 C++的内存管理机制 14.1.2 C语言中的malloc/free和C++中的new/delete的区别和联系 14.1.3 迭代和递归区别 14.1.4 不可操作的操作符 14.1.5 C++关键字mutable作用 14.1.6 引用与指针有什么区别? 14.1.7 什么是黑盒测试和白盒测试? 14.1.8 你知道的类模版有哪些 14.1.9 new可以搭配free吗,为什么? 14.2.1 怎么查看内存泄漏 14.2.2 什么是内存溢出 14.2.3 内存溢出的解决方案 14.2.4 函数指针与指针函数分别是什么 14.2.5 C++11新特性了解吗 14.2.6 接口和抽象类的区别