简介
字节后端实习 03.10 C++
直接凉凉, 问了很多基础, 特别是网络(然后lz学的很烂),
内容
项目
- 项目用的这些框架学校会教吗?(怎么可能)
- 为什么要前后端分离? 如何实现? 什么是RestFul API? 为什么要这么做?
- 资源请求的过程(和输入URL到浏览器请求资源的过程差不多,就是多了自己实现的内容)
- 后端如何管理这些数据? Django路由和视图?
- (好像叫这个名字吧)axios请求过滤器的实现?
- 用户权限分级+权限组表的实现?(应用场景,固定操作还是要不断修改操作?)
还有一个项目不感兴趣, 直接跳过.
C++
有点记不清楚了
- std::map的实现
- 为什么是红黑树?
- 操作复杂度&代价
- 如果是你会怎么实现支持map功能的数据结构?(懵.jpg)
- 我要O(1)的查询(不会是红黑树+哈希表吧)
- 然后扯到了std::unordered_map, 还扯到了模板
- STL map/unordered_map支持多重键吗?(会直接覆盖掉), 估计是想问multimap的实现😓
- 基于hash的实现如果快满了应该怎么操作?(真的没看源码,然后就乱说了一个一致性哈希+倍增扩容)
- 面C++的时候突然冒出来算法了
- 突然想起来还问了很多排序算法来着
补一个应用题
- 109个数据记录中找topK: 然后我一下子抽风了说数据太大会爆内存, 所以不能直接用快排的partition, 要用类似归并排序的思路进行外部排序+切分文件+缓冲区文件重组+读取目标位置的记录 估计是白给了
- 还说了可以用堆(不过这么多数据放堆里真的没事吗?)
计网
- TCP三次握手流程+HTTP报文传输过程+DNS解析(项目里覆盖了)
- 不用DNS怎么访问一个远程机器上的资源?
- 如果一个网站没有注册域名, 怎么获取网站服务器上的信息?
- 如果管理那个网站的域名的DNS服务器裂开了, 怎么办?
- 只有IP+端口号可以访问一个机器上的资源吗?
- HTTP请求基于什么? QUIC是怎样实现可靠的UDP传输(全忘了)
- HTTPS为什么能够保证安全性?(答得很烂)
- 证书为什么可信? CA
- 证书的内容?
- TLS 4次交换了什么信息? 越详细越好!
- HTTPS中间人劫持
- 如果你是黑客, 怎么劫持这些信息?(实在想不出来,)
- ...还有很多乱七八糟的拓展应用,记不清了
算法题
就一个
组合总和, 只不过不可重复使用数字, 应该算很简单的了😂
可能看之前答得太烂了所以就随便弄了一题
总结
投字节之前务必反复复习计算机网络的内容, 面试官友情推荐多用wireshark抓包, 然后多看就会了(不会像lz一样背了就忘一面就凉)
小哥人态度确实很好了属于是🤤 实在想不出来也会不断提示直到接近答案