小黑盒 | 后端开发 | 一面,二面,三面,HR面(OC)
前言
脉脉投递,12月16日一面,之后中间补了一次笔试题,笔试难度比较大,做的很烂,但是因为一面答比较好,所以破例给了二面的机会,12月30日二面,1月5日三面,1月6日HR面
一面(12月16日,40min)
自我介绍
简历项目
- 介绍一下简历的第一个项目?
- 项目中的Feed功能是怎么实现的?
- Feed推送用的是拉还是推方案?
- 项目中的签到功能是怎么实现的?
- 为什么要使用BitMap?
- Redis 分布式锁是怎么实现的?
- Lua脚本释放锁的流程?
- 热点数据缓存的添加是如何实现的?
- pipeline和redis事务的不同?
- 读取缓存的策略是怎么样的?
- 介绍一下简历的第二个项目?
- 渐进式 rehash 扩容机制的实现?
MySQL
- 使用索引查询完整数据过程?
- 什么是乐观锁和悲观锁?
- MySQL中乐观锁是如何实现的?
反问
- 部门的业务?
- 部门的技术栈?
二面(12月30日,50min)
自我介绍
实习项目(25min)
MySQL
- 聚簇索引和非聚簇索引的区别?
- 回表的代价有哪些?
- 什么时候采用全表扫描的方式,什么时候使用采用 二级索引 + 回表 的方式去执行查询呢?
- 如何避免回表查询或者二次查询?
- PostgreSQL数据库和MySQL数据库事务的区别?
- SELECT <字段列表> 查询效率会比SELECT * 查询效率高出多少?(具体计算一下)
Redis
- 使用Redis Set数据结构去重的优缺点?
- 使用布隆过滤器去重的优缺点?
- 布隆过滤器的误判率如何解决优化?
代码
- 给了一段代码,解释这段代码的含义和有哪些问题?
其他
- 有没有参加过ACM或者打过算法比赛?
- 有没有了解过小黑盒?
反问
- 部门的业务?(游戏社区)
- 部门的技术栈?(Python + Go)
三面(1月5日,30min)
自我介绍
其他
- 为什么从第一家实习公司离职?为什么来了字节实习?
- 实习期间对自己的最大成长是什么?
- 实习期间遇到的最大的困难是什么?
- 为什么选择投递小黑盒?
- 对工作时长有什么看法?
- 最近2个月都在学习哪些技术?
数据结构
- 平时最常用哪些数据结构?
- 什么是平衡二叉树?
- 了解哪些平衡二叉树?
Redis
- 看过Redis的哪些源码?
- 跳跃表的底层实现?
- 为什么Redis选择跳表而不用平衡树这些?
算法
- 给定一个数组,在数组中找出3个数使得它们和为k。(多种解法实现,并分析每一种解法的时间复杂度)
- 讲一下KMP算法的实现思路?
反问
- 部门的业务?(游戏社区)
- 部门的技术栈?(Python + Go)
- 面试结果什么时候可以出来?(一周以内)
HR面(1月6日,30min)
自我介绍
实习经历
校园经历
反问
#春招##小黑盒#