线下笔试: 1. top-k 问题2. 实现一个有界缓冲队列,实现核心方法 put 和 get一面:1. 自我介绍2. 数据库设计的三大范式3. 如果你遇到一个查询时间很久的业务,你会怎么解决这个问题4. 如果这时候通过索引都已经没法把查询时间压下去,你会考虑怎么做5. 在你的项目里是怎么用线程池的6. 假设你一个线程在跑的过程中它炸了,你要怎么去保证业务还能继续正常运行下去7. 进程和线程的区别8. 线程它们之间是怎么通过通信的?进程之间它们又要怎么通信9. 浏览器输入了一个网址,到浏览器渲染出这个画面。中间这个过程发生了哪些事情10. 假设你在本地 commit 提交了一个东西,它还没有推到你的远程仓库,但是你觉得这 commit 有问题,不想要这个 commit,你要怎么办11. 用 Redis 做缓存会出现什么问题,以及你要怎么解决12. 你说写你的项目是高可用的,你是怎么保证这个高可用的呢13. 你为什么要自己写个mq项目14. 你有用过 AI 去帮你进行学习一些 coding 之类的事情吗反问:1. 业务:做AI机器人的软件开发当时答得比较烂,一面没过