字节后端实习一面(1h)
1、自我介绍
2、介绍一下实习中参与度最高的一个项目,耗时是怎么算的,有做过压测吗?
3、实习过程中有哪些成长?
4、实习如何和同事们沟通?
5、git cherry-pick是用来干啥的?
- 将一个或多个提交应用到另一个远程分支
6、贪心算法和动态规划的区别?
- 贪心算法:每次都选择当前最优的选择
- 动态规划:通过不断尝试找出全局最优解
7、稳定排序和非稳定排序的区别是什么?
- 相等元素在排序后的相对位置知否改变
8、Mysql的索引
9、用过哪些索引?
- 主键、唯一键、普通索引、联合索引
10、B+树相对于B树的优点?
- 范围查询快
- 更矮胖,查磁盘次数少
11、加索引一定比不加索引查询快吗?
12、死锁的构成条件?
- 一个资源同一时刻只能有一个线程占用
- 不可剥夺
- 不会主动释放
- 环路等待
13、context是干啥用的?
- 上下文信息传递
- 超时控制
- 多协程控制
14、有没有自己实现过一个context类?
15、带缓存和不带缓存的channel的区别?
16、谈谈你对切片的认识?
17、切片的扩容机制?
18、 用过哪些可以保证线程安全的工具类?
- sync.Mutex
- sync.Map
- sync.Once
- sync.Pool
- sync.WaitGroup
19、如果设计一个缓存,需要考虑哪些方面?
单体:
- 数据结构
- 淘汰算法
- 过期机制
- 并发安全
- 缓存失效(未命中)
分布式:
- 负载均衡
- 通信
- 数据一致性
20、容灾策略,单体缓存启动启动失败了怎么办?
- 数据库兜底
21、介绍项目
22、策略模式是什么?
23、删除、恢复、秒传详细说明
手撕:两个大数相加
反问:面试表现和需要提升的点?
现在还没找到暑期,何去何从?