腾讯云智一面-2024/03/25
4.10 更新 今天收到 offer 了,应该会拒了(虽然还没有其他公司的 offer),很感谢云智给的面试机会。
4.1 的时候约了 HR 面,简单介绍了基本情况就结束了
---
处女面,感觉问的常规八股比较多,没有特别深入的问。
- 算法题:LeetCode 79,题目不难,要求自己构造二维数组,然后输入输出(10min 写完,忘记标记重复访问了,然后有 bug 面试官让仔细看看),问了时间复杂度和空间复杂度(这块没分析好)总共20min
- 项目简单问了下
- InnoDB 索引为什么是 B+ 树,不用二叉树、不用哈希表(没有说 B 树,即答了,然后发现没问就没说了)
- 除了 B+ 树,还有什么索引结构,比如 ES 用的是什么索引
- 有一个 web 接口比较慢,有哪些方式进行排查 -> 我说了 CPU 和内存占用可能太高
- 接上个问题,IO 方面有没有可能会有问题(然后就扯了数据库)
- 慢 SQL 如何排查?
- 如果有索引,用到了索引,但是仍然比较慢,如何排查?-> 我说了索引失效的情况
- 然后追问如果用上了索引,但是对于索引来说可能会选错索引,如何排查?(没答上来)
- coredump 如何排查?
- 四次挥手介绍一下
- 没有建立连接,客户端直接发送数据给客户端会发生什么
- 常用的锁有哪些?我答了自选锁、睡眠锁、互斥锁和读写锁
- 追问睡眠锁和互斥锁的区别?
- 追问自选锁和睡眠锁的应用场景?
- 协程和线程的区别
- 面试官问了一个,如果有一个协程一直在自选,如何处理? -> 我说了的内核态线程的时钟中断
- Go 语言的协程库,用户态的抢占式调度,让了解下
- 转 Go 可以吗?
- 数据库的连接模型?感觉这里想问的是 Reactor 模型
- Redis 的线程连接模型 -> 扯了 IO 多路复用
- 介绍一下常用的 IO 多路复用
- 8 核 16G 机器最多可以建立多少个 TCP 连接(不会)
- 反问
---
2024-03-27 腾讯云智二面
二面面试官明显水平高很多,然后我 Redis 下午突击看的,被吊打了(2333
- 自我介绍,然后问了一下后端开发的技术栈(问会不会 RPC 等)
- 数据库查询比较慢,如何排查? -> 答了索引优化、SQL 语句优化、分库分表(踩坑了)
- 如果想做一些缓存优化,怎么做呢? -> 答了 Redis 作为缓存
- 如果数据量比较大的情况下,缓存击穿了,这种场景如何解决的? (答了应用层对字段做校验,用布隆过滤器)
- 布隆过滤器如何判断那个字段在缓存中的呢?
- 布隆过滤器误判问题怎么办?
- 布隆过滤器在异常情况下,也会出现缓存击穿,怎么考虑的?(没答上来)
- 面试官这里说明前面答的应用层和布隆过滤器没答到点上,然后他说了降级服务,返回 NULL 值,避免用户请求量太大;
- 分库分表,如何做水平分表?(开始瞎扯)
- 追问如果有上亿的数据,具体怎么分?(扯了对主键哈希运算)
- 追问这个时候如果查某个范围的用户,该怎么查,因为分表了之后不知道具体在哪个表当中(完全不会了,云无论次了)
- 面试官说这种哈希的话是很考研水平,可以采用合理的方式将数据均匀分布(提到一个什么冷热 key,要具体结合业务)
- MySQL 中 InnoDB 引擎和 MyIsam 引擎的区别?(终于遇见一个会的八股了)
- C++ 程序 coredump 如何定位?(答了 gdb,bt 命令查看栈帧)
- 追问 gdb 什么命令查看栈帧?(backtrace?)
- 追问 coredump 文件假设没有记录具体发生崩溃的地方,查不到栈帧,比如可能因为内存泄漏导致的问题,如何解决?(答了 valgrind,面试官推荐了一下 perf 火焰图)
- 开始说假设。。。然后发现我没学过 kafaka,换了个问题
- 场景题:微信附近的人,10 亿用户,有哪些技术难点,该如何解决?(开始瞎扯)
- 面试官说应届生可以从分而治之、topK 、堆排序方法考虑(恍然大悟,相当于是海量数据对距离取 topK 问题),然后面试官提到了 GEO 哈希
- 算法题:力扣 108(上来以为是手写二叉平衡树,被唬住了,写了快 30min)
跌跌撞撞的找工作经历 文章被收录于专栏
主要记录一些个人的实习、秋招的面经等