base:北京
开发语言:Java
面试语言:Java
学历:本科
一面
60min
- 算法:链表相关的删除操作,同LC19题(限时十分钟)
- SQL题目:连表查询(5分钟)
- (做题一共15分钟)
- join on后面的条件和where后面的条件有什么区别和作用
- join执行原理
- 了解一下项目(太简单,直接忽略)
- 项目中的限流怎么实现(令牌)
- 说一下滑动窗口限流的具体实现(写小demo,zset实现)
- 滑动窗口限流中zset的底层数据结构(压缩链表和跳表)
- 讲解一下跳表及跳表的时间复杂度
- 给出场景,判断Spring的事务是否失效(G了,没回答正确)
- Spring的事务原理(G,不知道,讲了一下自己写框架的话怎么实现)
- SpringBoot的启动流程
- SpringBoot的stater机制
- 如果你写一个starter怎么写?核心操作有那些?
- SpringBoot的预加载怎么实现
- SpringBoot的ApplicationContext、Bean、Listener加载顺序
- 了解Kafka吗(不了解),引导到了解的RabbitMQ
- RabbitMQ怎么保证的可靠性
- MQ 的offset机制 (G,说了一下自己的理解)
- 聊聊分库分表(G,没了解过,说了一下自己的理解,面试官觉得项目中有这种场景就问了,后悔瞎写了)
- 分库分表在不使用中间件情况下,水平切分,如何查询一个非切分依据(如按照A字段分库分表,如何确定B字段在哪里)字段(要求主要讲怎么确定数据在哪一个库表上)(G,没了解,说了一下自己的思路)
- 了解过k8s或者其他云原生的东西吗?(轻度使用k8s,引导面试官到Docker上面)
- 讲一下DockerFile的书写及相关关键字段的作用
- 看我桌面上有APM的项目资料,问了APM相关的设计(面试官就是做基础架构的),由于我当时鼓捣的时候用的javaagent探针实现,就讲了一下这个简单项目的探针实现
2 面忘记了
项目和事务为主