淘宝 二面
- C++
- 内存泄漏怎么排查?(说了找挨个分配内存的地方看有没有可能未释放内存的风险,面试官问还有呢,不知道了。。)
- 内存泄漏的原因有哪些?
- c++定义的变量的初始化顺序是怎么确定的?(答初始化列表从左到右,确定看编译的机器码的顺序,也不确定。。)
- c++文件的静态变量和全局变量在从cpp源文件到可执行代码中的过程发生了什么?数据存在哪里?
- C++代码从源代码到生成可执行文件,这个过程中发生了什么?
- 为什么要有智能指针?智能指针有什么好处?(防止操作裸指针/方便/安全/防止内存泄漏)
- 智能指针有哪些问题?(答循环引用,面试官问还有吗,不知道了。。)
- 网络
- 网络应用层有哪些协议?(答HTTP/WebSocket)
- 介绍HTTP/WebSocket的区别
- HTTP1.1和HTTP2.0的区别?(头部压缩/二进制帧/并发传输/服务器主动推送资源)
- HTTP3.0有了解过吗?(没。。)
- UDP怎么实现可靠传输?(答QUIC,面试官提示QUIC就和HTTP3.0有关)
- 除了QUIC还有其他什么方式?(答传冗余包)
- 传冗余包是直接传一摸一样的复制包吗?这样岂不会加大网络拥塞程度(答还可能传三个包加一个冗余包,任意一个失效了还是可以恢复)那这是用的什么方式?底层是什么算法,知道吗?(不知道。。)
- WebRTC前向纠错FEC是用的什么冗余包方式?
- 网站的负载均衡是怎么做的?ngnix反向代理原理?
- 视频传输
- 你有看过ffmpeg的源码吗
- 描述一下如果让你写一个ffmpeg的话,这其中的过程会用到哪些接口?(完全不会。。按照视频编码解码流程瞎扯了一通)
- ffmpeg解析视频文件到HLS协议格式的过程中发生了什么?
- 什么是i帧/p帧/b帧?(不知道。。)
- 项目
- 你这个网站如何处理高并发问题的?(答io多路复用+线程池)
- 介绍你多线程的结构
- 为什么你的数据传输要用自定义的应用层协议?
- 什么是OCR/ASR?
- 余弦相似度是怎么计算的?出了余弦相似度还有哪些计算相似的方式?
- 你这个链路是线上跑的还是离线跑的?
- 其他
- 你有看过哪些开源项目的源码?(答nginx)
- 你是如何学习先进比较前沿的技术的?(答技术文档和学校论坛)介绍介绍(瞎说)
- 算法题
- 2n+1个数取出唯一的那个数(异或一遍)
- 2n+1+1个数取出唯一的那两个数(没想清楚。。我说的异或两遍)
- 舞会 关灯 白帽子 黑帽子 鼓掌 问题(答案是开关几次灯就有几个人戴黑帽子)
- 最大连续子数组
- 手写发布订阅模式
全程70min,活生生拷打