波克校园招聘 Java 笔试面经
- 轮次
- 笔试
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- Java 线程与锁有哪些常见机制?
- Oracle 数据库有哪些常见读写限制?
close()、try等 Java 基础 API 和异常处理机制如何使用?- 删除一个元素后,如何求目标之间的最短距离?
- 四角游戏如何用 DFS 求解,并避免暴力枚举超时?
- 对序列重新排序后,如何最小化相邻元素相关的代价和?
《参考解析》
- Java 并发基础:先区分线程生命周期、互斥与可见性。
synchronized适合结构化加锁,Lock提供可中断、超时和多条件队列,原子类则通过 CAS 处理简单状态更新。回答时应结合共享数据和临界区说明选择依据。 - DFS 优化:四角游戏若直接枚举所有状态容易指数爆炸。可以把局面编码后做记忆化搜索,缓存“当前状态到最优结果”的答案;再结合不可行状态剪枝、对称状态合并和更优的搜索顺序减少分支。
- 序列重排:先把代价函数拆开,判断相邻贡献是否满足交换论证或单调性。如果局部交换能证明某种排序永不更差,就可转为贪心;否则应考虑排序后动态规划,而不是继续枚举全部排列。