字节广告后端-日常面经
1. JWT数据格式
Header.Payload.Signature,Header存算法,Payload存用户信息,Signature用于防篡改
2. 用户感知token过期
前端请求返回401状态码
本地缓存过期时间主动判断
3. 拦截器实现
是,实现Spring的HandlerInterceptor接口,重写preHandle等方法
4. Bean生命周期
实例化→属性注入→初始化→销毁
5. 后置处理器
实现BeanPostProcessor,在bean初始化前后拦截,如AOP代理生成时使用
6. Lombok作用
自动生成getter/setter/构造器/toString等,减少样板代码,提升开发效率
7. Redis数据结构
String/List/Hash/Set/ZSet/Bitmap/HyperLogLog/GEO
8. ZSet实现
底层用跳跃表(SkipList)+哈希表,跳跃表按分数排序,哈希表支持O(1)查分数
9. ZSet查询复杂度
O(logn),因跳跃表分层结构,每层跳过约一半节点,类似二分查找
10. InnoDB索引类型
主键索引、唯一索引、普通索引、全文索引(5.6+)、空间索引
11. 索引有效性判断
看查询条件是否命中索引字段,是否避免%前缀模糊查询/函数计算等破坏索引的操作
12. 索引底层实现
B+树结构,普通索引叶子节点存主键值,主键索引存行数据
13. 进程vs线程
进程:资源分配单位,独立地址空间
线程:CPU调度单位,共享进程资源,切换开销更小
14. 线程同步措施
synchronized/Lock/Atomic原子类/volatile/CAS/ThreadLocal
15. TCP关闭流程
四次挥手:客户端FIN→服务端ACK→服务端FIN→客户端ACK
16. 关闭连接状态
客户端:TIME_WAIT(等待2MSL确保包送达)
服务端:CLOSE_WAIT(未及时调用close)
TIME_WAIT过多会占用端口资源,影响新连接建立
手撕 数组最小操作次数
Header.Payload.Signature,Header存算法,Payload存用户信息,Signature用于防篡改
2. 用户感知token过期
前端请求返回401状态码
本地缓存过期时间主动判断
3. 拦截器实现
是,实现Spring的HandlerInterceptor接口,重写preHandle等方法
4. Bean生命周期
实例化→属性注入→初始化→销毁
5. 后置处理器
实现BeanPostProcessor,在bean初始化前后拦截,如AOP代理生成时使用
6. Lombok作用
自动生成getter/setter/构造器/toString等,减少样板代码,提升开发效率
7. Redis数据结构
String/List/Hash/Set/ZSet/Bitmap/HyperLogLog/GEO
8. ZSet实现
底层用跳跃表(SkipList)+哈希表,跳跃表按分数排序,哈希表支持O(1)查分数
9. ZSet查询复杂度
O(logn),因跳跃表分层结构,每层跳过约一半节点,类似二分查找
10. InnoDB索引类型
主键索引、唯一索引、普通索引、全文索引(5.6+)、空间索引
11. 索引有效性判断
看查询条件是否命中索引字段,是否避免%前缀模糊查询/函数计算等破坏索引的操作
12. 索引底层实现
B+树结构,普通索引叶子节点存主键值,主键索引存行数据
13. 进程vs线程
进程:资源分配单位,独立地址空间
线程:CPU调度单位,共享进程资源,切换开销更小
14. 线程同步措施
synchronized/Lock/Atomic原子类/volatile/CAS/ThreadLocal
15. TCP关闭流程
四次挥手:客户端FIN→服务端ACK→服务端FIN→客户端ACK
16. 关闭连接状态
客户端:TIME_WAIT(等待2MSL确保包送达)
服务端:CLOSE_WAIT(未及时调用close)
TIME_WAIT过多会占用端口资源,影响新连接建立
手撕 数组最小操作次数
全部评论
相关推荐
点赞 评论 收藏
分享
昨天 17:16
黑龙江大学 Java 点赞 评论 收藏
分享
查看23道真题和解析