9.2顺丰提前批一面
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 项目中的 hotkey 探测如何实现,如何识别假热点数据?
- Kafka 宕机时如何保证灾难回放能够继续或恢复?
- 限流排队为什么使用 ZSet 而不是阻塞队列?
- Expirable Semaphore 如何防止 permit 泄露?
- ArrayList 和 LinkedList 有什么区别?
- Java 有哪些引用类型?
- 哪些异常会触发事务回滚,如何配置回滚规则?
@Autowired和@Resource有什么区别?- Redis 哨兵如何判断主节点下线并选择切换节点?
c>1 AND b=1 AND a=2时联合索引能否生效?- 如何从一百亿个数中找出最大的十个?
《参考解析》
热点探测应结合访问频率与时间窗口,并用业务校验过滤伪造数据。Kafka 回放要依赖持久化日志、消费位点和幂等处理,宕机后从已确认位点恢复。ZSet 能按时间或优先级排序并支持过期清理;信号量租约需在超时后回收。哨兵通过主观下线与多数哨兵确认形成客观下线,再选举执行故障转移。联合索引遵循最左匹配和范围截断原则,具体是否使用需以执行计划为准。海量数据取 Top-K 可用大小为 K 的最小堆,复杂度 O(n log K)。