快手 一面面经
base北京-2024届暑期实习-Java后端开发
05/16 一面 视频面试
时长:1小时
- 自我介绍
- 自己选一个项目介绍一下,说说你觉得做得有亮点或者难点的地方
- 你说你的项目用到了Caffeine本地缓存,你知道它底层是用什么数据结构实现的吗?
- 如果不考虑使用现成的本地缓存组件,你自己写代码实现本地缓存的话,你会考虑怎么写?
- 我看到你的项目里用到了消息队列,如果消费端发生异常导致消息消费失败的话,有什么补偿策略?
- 如果消息队列重试的话,怎么保证消费的幂等性?
- 如果使用Redis来实现消息队列消费的幂等性保证,你会怎么设计?
- Redis和MySQL如何保证数据一致性?
- HashMap和ConcurrentHashMap的区别?
- ConcurrentHashMap是如何保证线程安全的?
- CAS中有一个ABA问题,你能介绍一下吗?
- 怎么解决CAS中的ABA问题?
- Java的JUC包里有没有现成的类可以解决CAS的ABA问题?
- ArrayList和LinkedList的区别?
- 说说ArrayList和LinkedList查找元素的时间复杂度?
- 假如现在有一个LinkedList,节点中存的是一个对象,如何根据这个对象的属性对这个List进行排序?
- MySQL的索引为什么可以支持范围查询?
- 介绍下什么是聚簇索引?
- 你刚刚提到MySQL每张表都有聚簇索引,如果我没有指定主键的话,它还会有聚簇索引吗?
- 如果数据库引擎用的不是InnoDB,而是其他引擎,也会使用上面你说的规则来保证每张表都有聚簇索引吗?
- 手撕SQL:有一张学生表`students` ,里面有4个字段:id, name, age, class 。查询平均年龄在10岁以上的班级。
- 手撕算法:LeetCode 5.最长回文子串。
反问
- 部门业务
- 技术栈
后续
半小时后HR微信反馈说一面通过了,约18号二面。这效率给HR姐姐赞一个~
#我的实习求职记录##实习##暑期实习##面经##快手#