一面 2月28日
- 自我介绍
- 项目相关
- RAFT 协议选举流程
- C++ 中的 new 和 malloc 的区别
- 如果说 new 的时候内存不够了,操作系统会做什么操作
- 引用和指针有什么区别
- 虚函数如何实现多态
- 父类指针指向子类对象,如何对子类虚函数进行寻址
- 构造函数可以是虚函数吗
- C++ 怎么调用 C
- ACID 特性
- 脏读、幻读、不可重复读的概念
- mysql 索引是什么
- B+ 树的叶子结点的链表有什么作用
- 为什么层数是 3 左右呢,不是其他数B+树的概念
- IO 多路复用
- 四次挥手
- git 常用的操作,有没有用过 rebase
- 进程和线程的区别
- 描述一个死锁情景
- 一个算法题,力扣 25 题「K 个一组翻转链表」
二面 3月5日
- 项目相关
- IO多路复用
- 基于IO多路复用(epoll),两个线程之间如何通信,
- 一个进程如何 handle 一个信号量(写错了,应该是信号),在什么时候做
- RDMA 原理,如何实现零拷贝
- 算法:在二叉树中找路径最长的两个点
- 方法一:两次 BFS
- 方法二:树形 DP
以上几个问题其实都是由浅入深的,面试官从我的回答中找到一些点来深入询问,答不上来也尽可能的去按照自己的思路给一个答案。
#软件开发2023笔面经#