2024.7.17

面试

  1. 自我介绍
  2. java 和 go 区别
  3. 介绍一下 go 写项目 (比较基础所以就没深挖)

java

  1. static 修饰的方法
  2. 常量怎么声明
  3. 接口能有具体实现吗, 能多继承吗
  4. 多态怎么实现的
  5. 垃圾回收
  6. 介绍 ArrayList 和 HashMap, 能动态扩容吗 (不改变内存地址)
  7. 链表和数组的查询和添加

mysql

  1. 和 MongoDB 区别
  2. 索引是什么
  3. 事务

redis

  1. 怎么持久化

算法题

  1. 算 $\pi$, 给个数字 $k$, 公式如下

$$ \pi = \sum_{k=0}^{\infty} \frac{(-1)^k}{2k+1} $$

反问

公司业务 (问了两遍都没听太清, 是个资产什么的, 一个没听过的词)

总结

一般, 大概率也不太会去

2025.02.18

二战一面

面试

  1. 自我介绍,为什么实习时间那么短
  2. make 和 new 区别
  3. defer 怎么用,执行流程
  4. goroutine 什么情况下会阻塞
  5. channel 相关,读写关闭的 channel,读写满的 channel
  6. map 结构,是否并发安全,并发安全的 map
  7. GMP 流程(先从全局拿,再从其他本地队列拿)
  8. go 并发原语
  9. 怎么实现 qps 限制
  10. go 的垃圾回收
  11. MySQL 聚簇索引和非聚簇索引,explain
  12. MySQL 实现乐观锁
  13. Redis key 的删除策略(回答的过期删除策略,但是感觉可能是想问淘汰策略?)
  14. Redis 实现排行榜,什么命令取前 10 名
  15. 一段代码多次请求 Redis,怎么优化
  16. RabbitMQ 实现订单超时
  17. 降级熔断怎么工作,多实例部署怎么共享失败次数,调用失败是服务级别还是实例级别判断,降级后怎么恢复
  18. 开发流程,测试覆盖率要求

反问

  1. 业务(toB 项目,客户埋点信息收集)

总结

降级熔断这块儿还是得再看看,之前一直没考虑过多实例的情况。Go 的垃圾回收机制之前也一直没系统了解过,只知道一些关键词,以及 Go 的一些相关数据结构还需要了解一下(或许需要总结一篇 Go 的八股文了?)。