面灵AI

中科全安面经

轮次
一至二面
时间
2026-08
来源
牛客网

《面试题目》

  1. 自我介绍和实习项目主要做了什么?
  2. 实习期间修复的 bug 是主动发现还是他人安排?
  3. 实习期间开发了哪些功能,产出如何?
  4. 服务器垃圾定时清理器如何判断垃圾可以清理?
  5. 研判解析工具如何实现?
  6. 如何重构任务执行流程?
  7. 如何创建线程池?
  8. 什么是分布式锁?
  9. Java 中使用过哪些锁?
  10. 使用线程池时如何保证数据安全?
  11. 有哪些 SQL 优化经验?
  12. ThreadLocal 是什么?
  13. 一般如何设计索引?
  14. 是否熟悉 SQL?

《参考解析》

  1. 线程池设计:根据任务的 CPU/IO 属性设置线程数、队列和拒绝策略,提交任务时避免共享可变状态,结果和异常要显式收集。线程安全不能只靠线程池本身,还要保护业务数据。
  2. 分布式锁:Redis 锁至少要使用带随机值的 SET NX PX,并通过 Lua 校验持有者后删除;业务执行时间可能超过租期时要续期或用 fencing token 防止旧持有者继续写入。
  3. ThreadLocal:它把线程作为索引保存线程私有数据,在线程池中必须在 finally 中 remove,避免长生命周期线程持有请求对象造成泄漏。
  4. 索引设计:围绕高频过滤、排序和联合查询设计,遵循最左匹配原则并结合选择性与执行计划;清理任务要有明确的生命周期、白名单和可恢复记录,不能仅凭文件名或时间做删除判断。