小米 Java 二面:Redisson、阻塞 IO 与有序数组合并
- 轮次
- 二面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 实习中负责什么,Agent 项目解决了什么问题?
- Redisson 分布式锁如何实现可重入?
- Java IO 有哪些方式,什么时候适合使用 BIO?
- 网络连接和工作线程是什么关系?
- 怎样合并两个有序数组?
- 你了解目标团队的业务吗,对职业发展和大模型技术有什么看法?
《参考解析》
可重入锁
锁记录需要区分持有者并维护进入次数。同一持有者再次获取时累加,释放时递减,减到零才真正移除锁。分布式场景的持有者标识不能只有线程编号,还要区分客户端实例,更新计数和校验身份也要原子完成。
合并有序数组
如果第一个数组尾部预留了空间,从两个数组的末尾取较大元素写到末尾,避免覆盖还没比较的值。时间 O(m+n),额外空间 O(1)。若原数组不能改,则使用新数组从前往后归并。
连接与线程
BIO 的读写可能阻塞调用线程;一个连接一个线程容易理解,但大量空闲连接会占用线程资源。IO 多路复用能让少量线程监听许多连接,就绪后再处理;耗时业务仍要避免阻塞事件循环。