面灵AI

小米 Java 二面:Redisson、阻塞 IO 与有序数组合并

轮次
二面
时间
2026-09
来源
牛客网

《面试题目》

  1. 实习中负责什么,Agent 项目解决了什么问题?
  2. Redisson 分布式锁如何实现可重入?
  3. Java IO 有哪些方式,什么时候适合使用 BIO?
  4. 网络连接和工作线程是什么关系?
  5. 怎样合并两个有序数组?
  6. 你了解目标团队的业务吗,对职业发展和大模型技术有什么看法?

《参考解析》

可重入锁

锁记录需要区分持有者并维护进入次数。同一持有者再次获取时累加,释放时递减,减到零才真正移除锁。分布式场景的持有者标识不能只有线程编号,还要区分客户端实例,更新计数和校验身份也要原子完成。

合并有序数组

如果第一个数组尾部预留了空间,从两个数组的末尾取较大元素写到末尾,避免覆盖还没比较的值。时间 O(m+n),额外空间 O(1)。若原数组不能改,则使用新数组从前往后归并。

连接与线程

BIO 的读写可能阻塞调用线程;一个连接一个线程容易理解,但大量空闲连接会占用线程资源。IO 多路复用能让少量线程监听许多连接,就绪后再处理;耗时业务仍要避免阻塞事件循环。