50 HashMap 在 JDK8 中做了哪些优化?put 方法在什么情况下使用 CAS,什么情况下走锁?考察对 JDK8 HashMap 底层数据结构、扩容机制以及并发场景下 CAS 与 synchronized 使用条件的理解。 查看学习思路
51 volatile 关键字的作用是什么?如果两个线程同时对 volatile 变量 a 执行 a++,a 可能的值有哪些?为什么?考察 volatile 的可见性与有序性语义,以及复合操作非原子性导致并发问题的理解。 查看学习思路
52 ConcurrentHashMap 的 size 方法是如何计算的?计算过程中会不会加锁?考察对 ConcurrentHashMap 并发计数机制、size 方法实现及锁策略的理解。 查看学习思路
56 请设计一个算法,模拟小车在长度为H的道路上行驶,初始位置p、初始方向d,经过n次行驶后,输出碰撞次数、最终位置和方向。要求时间复杂度O(n)。考察候选人对边界条件、方向转换和线性模拟的掌握,以及能否处理特殊起始状态。 查看学习思路
60 请设计一个算法,模拟汽车在长度为h的通道内往返运动,给定起点p、初始方向d和n个移动距离,统计碰撞次数、最终位置和最终方向。考察候选人对边界碰撞问题的建模能力、大数处理以及模拟算法的实现细节。 查看学习思路