快手C++开发一面二面面经
一面全程没开视频,持续55分钟,整体难度一般。但是因为自己最近比较佛系,疏于复习和看面经,很多知道的问题也没有答好,随缘求个二面吧。
1.C++虚的机制和实现
2.C++封装的含义
3.析构函数为什么要用虚函数实现
4.内存对齐的作用
5.一般对齐是4字节或者8字节,如何实现6字节对齐,C语言里pack关键字知道吗
6.C语言里volatile关键字
7.C++代码如何调用C语言代码
8.如何保证某个类的实例只能创建在堆上,不能创建在栈上
9.static关键字作用,类静态成员变量什么时候初始化
10.sizeof的一道题
11.三次握手流程
12.四次挥手流程
13.撕代码 链表的插入删除反转
链表是否有环(本来打算让我撕智能指针相关,我说我用得少所以换成链表环检测了)
14.项目
15.反问
9.5下午二面
1.智能指针哪些,分别是怎么用的
2.vector底层实现,pop_back底层是怎么实现的
3.右值引用,作用
4.排序算法稳定性,哪些稳定哪些不稳定
5.为什么归并稳定,快速排序不稳定
6.基数排序稳定吗
7.手撕Z字形变换(打印输出),我说了保存到vector逐行打印,面试官要求直接通过下标打印,撕了半天
8.TCP如何保证可靠
9.为什么传视频一般用UDP协议
10.讲讲TCP拥塞控制
11.Linux了解得多吗
12.反问.团队主要负责偏底层的音视频SDK,客户端服务器端开发任务皆有