快手 秋招 Java 一二面(凉经 已自闭)
怎么感觉我的面试怎么跟牛客上看到的面经不一样..
一面全程MQ场景题+JUC,手撕一道多线程,一道hard,抗住了,面完1个小时约第二天的二面。
二面拷打20分钟项目,手撕俩hard一个没写出来.. 面完也搜不到原题,全程面试官在讲思路..
可能是学历不够,面试难度加大.. 太顶了,面完自闭了。
一面 7.31(1h)
- 自我介绍
- 选一个你简历上的项目讲一下(讲的实习项目,给自己挖坑了)
- 实习遇到的难点(导致后续都问的MQ)
- 消息堆积解决方案
- 消息发送、消费过程
- 消息一致性 不可重复性(以RabbitMQ角度来阐述的)
- 如果ack丢了,会有重复消息吗(重试 幂等)
- 刚才讲的是消费端的处理策略,生产端的处理策略是什么,怎么保障消息能发出去,不丢失?
- 正常消息队列的消息都是能正常发送的,在极端情况下消息队列的消息才会发不出去,对于消息队列来说有必要消耗一些性能对每一个消息做反查吗?
- 有用过其他的消息队列吗
- 讲讲RocketMQ事务消息的发送过程
- 讲讲Java集合类
- 往Map存放自定义的类型,有什么需要注意的
- HashMap put get过程
- 为什么HashMap要用红黑树,为什么不用二叉平衡树
- HashMap是线程安全的吗,有什么线程安全的实现
- ConcurrentHashMap怎么保证线程安全的
- 已经用了synchronized,为什么还要用CAS呢
- 扩容是怎么保证线程安全的
- 如果一个ConcurrentHashMap在被多个线程操作,在进行扩容操作时会有几个线程在处理
- (这块看过源码,所有细节全答上来了)
- JDK实现锁的方式有哪些(ReentrantLock)
- AQS还有什么其他的实现类吗
- 手撕(40min,一道20min)
- 2个线程,交替打印100的奇偶数(前面一直在问多线程相关,所以出了这个)
- 扩展:3个线程,顺序打印1、2、3(说思路即可)
- LeetCode hard 剑指 Offer 51. 数组中的逆序对
- 2个线程,交替打印100的奇偶数(前面一直在问多线程相关,所以出了这个)
- 反问
二面 8.1(1h)
- 自我介绍
- 拷打项目(20min)
- 项目成员,你负责的是什么
- Caffeine的实现原理
- Guava的LoadingCache和ReloadableCache(没了解过)
- 项目背景,项目部署在哪里,部署环境是什么
- 技术选型
- 建立联合索引字段的顺序
- 索引失效原因
- 索引优化方式
- 手撕(40min,每道20min)
- 第一题:移除原字符串中最小字符数,使得循环左移1位的字符串与循环右移1位的字符串相等
- 比如:abcd,左移一位:bcda,右移一位:dabc,删除原字符串中的最小字符数,比较左移右移后的两个字符串是否相等
- 第二题:01矩阵中反转最小的元素数量,使得原矩阵和顺时针旋转3次的4个矩阵均相等
- 竞赛题,codeforces原题.. 面试官应该是打ACM的,我太难了
- 第一题:移除原字符串中最小字符数,使得循环左移1位的字符串与循环右移1位的字符串相等
手撕我是一点思路都没有,全程面试官在讲思路,讲完就没时间写代码了,面完就感觉自己凉透透的了,第二天直接挂了。
我这个应该算是有点离谱的了,大家心态要放平,好好准备面试。
#快手##快手秋招##秋招##面试#