富途C++ 后端面经
一面一共一个半小时,二面半个小时
发面经攒个人品,
9.27:二面挂
# 9.13富途一面,我把自己的回答也写上了,仅供参考,如果有错误的话欢迎大家指正
C++中堆和栈的区别:堆需要手动管理,栈由编译器负责管理,堆上的内存要用指针进行,栈分配和释放的效率更高,然后声明周期也不一样
引用和指针的区别
申请一个指针,对它进行赋值,c++是如何进行操作的:会调用对应的构造函数,然后返回对应类型的指针
指针常量和常量指针:常量(指向)的指针 int* const p;指向方向不可以改变
static的作用:静态存储区,作用域为当前文件,如果是修饰局部变量,作用域为局部作用域
静态变量什么时候初始化 :
静态初始化:是指用常量对变量进行初始化。在main函数之前进行初始化
动态初始化:会调用到函数来初始化的,比如构造函数,会在用到的时候在进行初始化。
unordered_map是如何实现的,开链法以及扩容:hashtable实现,为避免冲突,每个位置放一个桶,超过8则自动生成红黑树,扩容方式与vector类似。
vector的迭代器的实现:迭代器是类模板实现的,表现得像指针,迭代器返回的是对象引用而不是对象的值,且使用后就自动释放了
linux的进程调度算法,以及linux选用哪一种:默认使用Completely Fair Scheduler,红黑树存储,每个结点的key为虚拟时间,每次调度选择虚拟时间最小的,虚拟时间是通过一个与实际运行时间相关的权值表达式计算出来的。
常见的算法:先来先服务,短作业优先,轮转调度,优先级调度,多级反馈队列,最短剩余时间,最高响应比
操作系统切换线程的流程:1.保存上下文,包括程序计数器、寄存器和堆栈指针。2.根据调度算法选择下一个线程。3.恢复待执行线程的上下文。4.执行该线程
切换进程的过程:主要是涉及到地址空间不同,TLB(页表缓冲)中的内容可能很多都失效了。
不属于同一个进程的线程切换,代价和进程切换是一致的。
线程独占的:一些局部变量,寄存器和栈空间
多线程有哪几种实现方式:thread() pthread_t()
如何实现线程同步:互斥锁,信号量,条件变量
上锁来访问临界资源的步骤
服务器上cpu100%了如何定位问题:top命令,查看系统相关,进程相关,cpu相关的参数 ps命令:查看进程相关。 查看系统日志,找到原因后限制该资源的使用或者扩容。
服务端监听的程序:1.创建sockaddr\_in结构体,选择协议族、ip、端口号, 2.创建socket,并设置选项(比如端口复用)3.将socket绑定到sockaddr\_in, 4.调用listen函数将套接字设置为监听状态 5.在epoll上注册监听事件,
服务器的半连接队列和全连接队列:根据是否完成三次握手来分,都有最大长度限制,超过则丢弃。
Https和http的区别
Https如何建立连接
一个站点的TCP连接数上限:因为每个tcp都独占一个端口号,所以理论上限是65535(0号不能用),tcp连接有四个成员:源ip、源端口、目的ip、目的端口。如果前三者固定,那么最多就只有66535个连接,如果客户端端口不限,那么就是相乘。
服务器端如何辨别客户端的访问是同一个人:文件描述符 cookie Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。
mysql的索引方式
sql中索引失效的场景:联合索引不满足最左匹配原则,索引列上有计算或者函数,字段类型不同,比如varchar类型的字段与数字比较就不走索引,但是与字符串比较就走索引,模糊匹配,如果%在最左
组合索引如何匹配:首先要有第一个字段,但是字段的顺序可以乱来,因为现在会自动优化
覆盖索引是啥:要查询的字段正好在索引中,不需要回表
mysql中的锁:行锁,间隙锁,表锁
sql语句执行顺序
acid的实现原理
事务隔离级别
可重复读如何实现
主从同步如何实现:binlog
MySQL的存储结构:表空间,段(包括数据段:即B+树的叶子结点,索引段:非叶子节点,回滚段),区(默认1M,64个连续页),页(InnoDB存储引擎磁盘管理的最小单元,默认16k),行
9.19二面
C++多态
多态底层实现
实现hash表
tcp和udp
tcp可靠传输靠哪些实现
udp传输一些大数据,后台数据包设置大小
udp数据包过大会有什么影响
tcp客户端和服务端建立长连接,客户端异常退出,会有什么影响
进程异常退出,操作系统应该怎么做
linux服务器许多连接处于timewait阶段
linux服务器上跑了很对进程,物理内存越来越少,对服务器有什么影响
物理内存不足,服务器,系统会怎么做
redis
如何实现redis的高并发
epoll底层如何实现处理海量请求
epoll为什么使用红黑树
就绪队列的作用
30个中文关键词,一篇文本文档,统计文本文档中出现这中文关键词的次数