腾讯后台开发一二三面
一面 32 min
部门介绍
项目中用的是什么协议
HTTPS的握手过程
TCP 和 UDP 的区别
TCP为什么安全
拥塞控制 和 流量控制
Map适合于什么场景
hashmap的讲解
算法题一道,单词逆转(各种优化)
忘记很多了,忘记录屏和总结了
二面 45 min
- 项目甲骨文
- Redis 使用
- 两道算法
- 数组两数和问题(一次遍历)
- 在 k 个数中每次挑选两个数进行乘积,然后挑选 n 次,求这 n 次的乘积和最小
- TMP文件权限
- C语言的编译链接
- tcpdump
- 64位整数 htonll
- syn flood问题
- 大端规则和小端规则
- RCV_BUF 和 SEND_BUF
- 符号链接和硬链接
- 同一个进程中哪些数据是共享的,哪些数据是隔离的
- 进程有哪些内存段
三面 35 min
- 项目甲骨文(难点 + 亮点)
- Redis的淘汰策略
- 缓存给你做你要怎么做(用什么数据结构)?
- 那如果在你项目中用自己的缓存,你的缓存的淘汰策略要怎么做?
- 如果缓存不够了,超过最大长度你要怎么淘汰?
- LRU要怎么怎么实现(Map + 双向链表),key-value 分别是什么,具体实现?
- 给你腾讯视频的会员信息以及某个视频的观看日志,然后你要怎么查找有多少个视频会员观看了该视频?(Set遍历)
- 那为什么不用map?
- 那如果我要你记录看视频的会员以及他们相对应的观看次数呢?(map + set)
- 那如果我给你的数据量很大呢?比如一亿条,然后只有2 G的内存,你要怎么做?(排序再分治来查)
- 具体怎么排序,然后怎么分治?
- 那如果我给你的用户标识是 int 类型的呢?(bitmap进行位运算)
- 你这种方法 2 G内存够吗?(内存够的)
- 那如果用户标识最大值是 5 亿呢?(内存也够)
- 需要遍历几次?
- 好了,没有反问环节...