lz 双非本,中厂实习,提前批能给面试机会已经挺满足了。
一面(2023/7/21)
- 项目中 ES 用来干什么?
- Goroutine 和 Thread 的区别?
- 如果我的多个 Goroutine 都是要进行一些阻塞的操作,那么会一直新建 M 吗?(上面讲到 GMP)
- TCP 挥手为什么需要四次?
- TIME_WAIT 状态需要等多久?为什么?
- 快恢复算法了解吗?
- 慢启动是一直 +1 +1 的线性增长吗?
- 发生快重传后,阈值会变为多少?会降为 0 重新开始吗?
- synchronized 加锁时,OS 底层干了什么?
- synchronized 加锁是一开始就直接加锁了吗?还是说刚开始会有什么不同的做法?(synchronized 锁升级过程)
- OS 中有哪些锁?
- 讲讲实习中使用 Goroutine + Channel 怎么做的一个性能优化?
- 讲讲 Redis 的集群模式
- Redis 集群部署时,一般不会超过 1000 个节点,为什么?
- 切片集群中,客户端发送请求,这个请求怎么到达指定的实例呢?(想问请求 key 算出槽位后,怎么知道对应哪个实例)
- 项目中滑块锁这一块具体是怎么做的?
- 活动库存扣减成功后做了什么?
- 算法:LC42. 接雨水
二面(2023/7/28)
全程在小小的项目里,挖呀挖呀挖!中途穿插一些八股,下面只把八股部分列举出来。
- DDD 的分层结构是怎样的?
- 这样分层有什么好处呢?
- 如果并发量很大,怎么保证抽到的奖品不会超出库存?
- 又问了一面问的滑块锁
- 分布式锁有什么实现方式?
- Redis 的 setnx 可能会导致两个线程同时加锁成功的情况吗?
- 怎么解决这个问题呢?(主从模式,主库宕机,该分布式锁还未同步到从节点,然后从节点升为了主节点,此时另一个线程同样可以加锁成功)
- 写一道 SQL ,update 语句 ,然后分析这条 SQL 会怎么加锁
- 项目中使用 ThreadLocal 用来做什么?
- ThreadLocal 会有内存泄漏的情况吗?ThreadLocalMap 结构
- 软引用和弱引用有啥区别?
- 项目二级缓存怎么实现的?
- 本地缓存的缓存容量你怎么衡量的呢?
- 为什么要用本地缓存?就用 Redis 这种缓存不行吗?
- 那你使用本地缓有考虑过会不会导致频繁 GC 呢?
- 当你缓存中的帖子发送变化时,你接下来具体是怎么做的?
- 如果服务多节点部署,怎么去删除多个节点的缓存?
- 项目问了一小时,没考算法
HR 说是对于项目的基础框架和问题的理解还不够深入,继续沉淀!!
#字节##面经##提前批#