又是在牛客网被邀请投递,我发现字节好喜欢邀请我,被邀请三次了,主动投递不理睬,邀请的一般都会有面试机会。
- 自我介绍
分布式对象存储项目
- 怎么实现的?
- 数据去重算法怎么做的?怎么判断具体的数据怎么重的?复杂度?哈希表存储在内存?内存爆满怎么办?用redis做缓存,如果redis缓存中key过期数据不存在,是否存储到数据服务?O(n)判断?。这里一直在追问,一开始没有理解什么意思,
- 断点续传怎么实现的?
go语言
没有问
计算机网络和操作系统
- http的method?具体?
- cookie和session有什么区别?
- http和https的区别?单项认证和双向认证流程?对称加密和非对称加密?流程?
- DNS解析的过程?域名服务器怎么解析?
- 进程和线程有什么区别?一个进程有什么数据段?同一个线程有哪些数据段可以共享的?你觉得栈区会共享吗?栈区和堆区有什么区别?
- 进程的通信方式?哪些方式比较快?为什么共享内存比较快?管道为啥慢?
数据库
- Mysql的索引有哪些?B+树和哈希索引有哪些区别
算法
- 版本号对比,version1和version2.大于返回1,小于返回-1,其他返回0.001和0001比较的时候都视为1;1.0.0和1.0是相等的返回0
- 直接给的main函数,没有其他东西
总结和心得
- 面试官的评价是基础还不错,代码能力有待加强。项目比较符合后端技术栈,做项目需要考虑如何更快的实现?考虑边界条件,做业务很多问题就出在这里
- 然后总结一下算法题,这个题目出乎我的意料,以为是链表和树,结果是一道从来没见过的题目,所以重点还是要提升自己的算法能力,而不是固有的题目,知道面对一道题怎么去思考?一开始不要急着写,和面试官聊一下思路,边界条件没有考虑准确,这个面试官说也是考察中十分重要的
- 对面试经历的要求不会太多,理解本科生,不太会要求,看重计算机基础和项目亮点,尤其是做项目有哪些难点和亮点,代码能力是最基本的能力,项目就是锦上添花
- docker和k8s考察比较少,侧重计算机基础,算法能力,思考问题能力