八股总结-----面经

进程和线程
窗⼝满了的情况下, write函数的阻塞和⾮阻塞分别返回什么
rpc和微服务的理解
操作系统并发和并⾏有什么区别?
select poll epoll
LT ET
进程通讯
知道进程/线程/协程吗?谈⼀下什么是协程?
什么是孤⼉进程,僵⼫进程,守护进程?
说⼀下B树和B+树的区别
epoll机制中最核⼼的数据结构是什么?
介绍⼀下红⿊树的特点和使⽤场景
epoll的触发机制有哪些?
线程池中的᯿要参数有哪些?
为什么选⽤epoll?
静态变ᰁ、全局变ᰁ存储在哪⼀个区
如何实现读写锁
如何实现读写优先级
零拷⻉
读磁盘的过程
堆和栈的区别
为什么进程切换开销更⼤
消息队列的作⽤
介绍⼀下观察者模式?
项⽬中使⽤过什么设计模式?
进程间通信如何实现?
线程和协程有什么区别,各⾃的优越性是什么
进程之间如何进⾏通信
什么是信号,信号是如何实现的
数据库:什么是关系型数据库
什么是事务
简单说说智能指针
堆和栈有什么区别
线程之间如何实现同步
悲观锁和乐观锁的区别?
有哪些锁?什么情况下会触发加锁,锁和索引有什么关系?
⽤过 Redis 吗? Redis 有哪些应⽤场景,了解 Redis 的定时删除机制吗?
有哪些类型的索引
建⽴索引有哪些原则
每种隔离级别会遇到哪些冲突
IO多路复⽤⾥,三种技术的区别
如何检测内存泄漏
MySQL 索引, B+数, 索引的存储,查询优化
多态 虚函数 底层实现 构造析构(为啥不能调⽤虚函数)
new 内存泄漏 new[]什么时候和delete不会出问题
容器 map unordermap 区别 红⿊树 哈希冲突 解决办法
多态 虚函数 纯虚函数 析构函数
内存泄漏 智能指针
C++内存 哈希底层实现 各种底层 代码运⾏过程
c++是⾯向对象的语⾔,⾯向对象的三个特性能 [展开] 介绍⼀下吗?
多态的底层实现有了解过吗?
虚函数它底层⼜是怎么实现的?
malloc 跟 new 有什么区别呀?
new 除了分配内存它还会⽐ malloc 还有其他额外的操作吗?(说了new 创建对象,但是⾯试官实际想说new 操作多了⼀次构造函数的调⽤)
new 实际上是做了两件事嘛,⼀个是分配内存、⼀个是调⽤实例的构造函数,那有了解过 new 可以只进⾏⼀个操作嘛?⽐如只分配内存不调⽤构造函数、或者只调⽤构造函数不分配内存嘛?
STL ⾥边常⽤的 vector 容器的扩容机制有了解过嘛?
刚才提到了2倍扩容、那为什么2倍、 3倍可以嘛?
vector 的初始容ᰁ了解过嘛?什么时候会进⾏初次扩容?
TCP为什么不能⽤于实时⾳视频传输?
说⼀下B树和B+树的区别
说⼀下C++的左值引⽤和右值引⽤
析构函数可以是虚函数吗?
介绍⼀下红⿊树的特点和使⽤场景
对分布式计算有了解吗?
static变ᰁ和全局变ᰁ的区别,在内存上是怎样分布的?
struct的内存对⻬规则,为何要内存对⻬?
介绍⼀下C++的纯虚函数
C++ 有序和⽆序 map 的实现机制(哈希表和红⿊树)
事务隔离级别
redis 实现分布式锁
redis 过期删除策略
C++哈希表实现
间隙锁
幻读如何解决
如何实现读写锁
如何实现读写优先级
C++ 智能指针 ,是否是线程安全的
零拷⻉
new和malloc区别, malloc如何分配内存
引⽤和指针
堆和栈的区别
介绍排序算法(介绍了插⼊排序、快速排序、堆排序)
⽤过stl的什么容器?⽤过哪些stl算法?
map的底层?
守护进程实现
多线程同步
Static
Const

define 和 const 的区别
引⽤和指针的区别
常ᰁ指针和指针常ᰁ有什么区别
vector push_back 的时间复杂度是什么,什么情况下会发⽣扩容,扩容如何实现
数据库:什么是关系型数据库
什么是事务
线程之间如何实现同步
C++ 的多态是怎么实现的
虚函数是怎么实现的
虚函数表的本质是什么
⽤过 Redis 吗? Redis 有哪些应⽤场景,了解 Redis 的定时删除机制吗?
SSL 握⼿的全流程,对称加密?
C++的多态体现在哪⾥,如何实现的。
static 关键字有哪些作⽤
什么是死锁,死锁的条件,如何避免死锁
智能指针有哪⼏种, weak_ptr 的作⽤是什么
操作系统如何进⾏进程的上下⽂切换
C++ ⼿写⼀个⽣产者消费者模型
C++ ⾥的⾃增运算符是线程安全的吗
索引为什么⽤ B+ 树,不⽤ B 树
四次挥⼿能不能合并第2、 3次?为什么
服务端出现⼤ᰁ close_wait 的原因可能是什么?
MySQL 索引是什么结构,⼀个 B+ 树有多⾼,估算⼀下两层的 B+ 树可以存放多少数据,三层呢?
MySQL 有哪些锁,什么是 Gap-Lock
给了⼀个 MySQL 语句分析加了什么锁
HTTPS 通信时是对称加密还是⾮对称加密?
说⼀下死锁的产⽣条件和避免⽅法
说⼀下缺⻚中断的解决⽅法
为什么需要 I/O 多路复⽤?
说⼀下数据库事务的四种隔离级别
会 MySQL 调优吗?
为什么栈分配内存⽐堆快?
虚函数表是什么,虚函数指针是什么?
析构函数为什么要定义成虚函数?
遇到过死锁吗?怎么解决的,不要背那四条。
线程和进程有什么区别?什么时候⽤多线程,什么时候⽤多进程?
线程崩溃进程会崩溃吗?
.cpp -> 可执⾏⽂件的过程
了解链接的详细过程吗?
vector size/capacity 的区别,如何缩容?
知道哪些键值型存储数据结构?
这些数据结构的时间、空间复杂度分别是什么?什么时候选⽤?
让你设计⼀张表,你会怎么设计
为什么要建⽴索引,索引为什么能够加快查询的速度
什么情况下不要建⽴索引⽐较好
数据库的三⼤范式是什么
知道哪些锁,这些锁的区别是什么?
单例模式实现的优点
懒汉式局部静态变ᰁ提前销毁有什么办法(销毁后不会再创建了)
了解C++14, 17特性吗
介绍redis的⼏种数据类型和底层数据结构
redis除了五⼤数据类型,其他数据类型有了解吗
int* 和const不同位置代表什么意思
C++11左值右值和移动语义
创建线程⽤什么api
如何销毁线程
timewait状态原因
closewait状态原因
很多closewait状态是什么原因
如何保证线程安全
客户端close了服务端发送数据会发⽣什么

互斥锁粒度⼤怎么解决
介绍有哪些锁
redis的数据结构
数据库如何存盘
类中static作⽤
虚函数和纯虚函数的区别
了解哪些C++11特性
weakPtr如何获得sharedPtr
lambda函数的返回值
右值引⽤的⽤途
redis做缓存有哪些问题,如何解决?
常⽤的redis命令有哪些
linux常⽤的命令
说⼀下快排的思路
说⼀下其他时间复杂度为nlogn的排序算法
链表和哈希表的区别
链表和队列的区别
进程调度算法
进程上下⽂切换的内容
函数᯿载底层原理
跳表是什么
跳表增加和删除应该怎么操作
MySql性能优化怎么做(建⽴索引,覆盖查询,避免索引失效)
视频会议⽤的什么协议
王者荣耀是Tcp还是Udp链接?
代码编译过程(四⼤步)
池化层作⽤
聊⼀下哈希表
详细介绍⼀下unordered_map
既然是⽤哈希函数,那么肯定有哈希冲突,遇到冲突怎么办,分析⼀下时间复杂度
介绍⼀下深拷⻉与浅拷⻉
如果想让你⽤深拷⻉拷⻉⼀个字典,你怎么做
为什么要设计内核态、⽤户态两种状态
读写锁说⼀下,应⽤场景、原理
说⼀下缺⻚中断
对DNS劫持了解吗
为什么使⽤线程池
内存池使⽤过吗
引⼊协程的原因
重载与重写的区别
C++中的关键字【volatile/const/static】
vector的resize和reverse有什么不同啊
如果要你实现⼀个map,你底层会⽤哪些数据结构
构体内存对⻬的问题
SYN(洪范)攻击
半连接队列和全连接队列
继承是否破坏了封装?
右值引⽤概念、为何要引⼊右值引⽤?
条件变ᰁ与锁
为什么索引会加快查询的速度?
索引的分类有哪些?
DNS协议 详细过程
介绍下虚拟内存
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值