# 1. Java ScheduledThreadPoolExecutor 的堆实现与延迟队列局限 A 入队 O(1) B 无锁竞争 C 用堆 O(log n) 排序 + 锁,百万级任务性能受限 ✓ 正确答案 D 适合百万级任务
# 3. Linux 层 cron 与 JVM 内调度的职责划分 A cron 管系统级低频,JVM 调度管应用内高频毫秒级 ✓ 正确答案 B 两者职责相同 C cron 精度毫秒级 D JVM 调度跨进程
# 4. Netty/HashedWheelTimer 时间轮算法的分层与精度 A 毫秒级精度与 tick 无关 B 无精度限制 C 精度受 tickDuration 限制,未对齐延迟取整到 tick 边界 ✓ 正确答案 D 精度任意
# 5. 分布式延迟任务的精度与一致性,Redis 延迟队列 vs 本地时间轮的取舍 A Redis 精度更高 B Redis 分布式持久但精度有限,本地时间轮高精度但单机易丢 ✓ 正确答案 C 两者一致 D 本地时间轮分布式
# 6. 高精度调度中的时钟源选择,System.nanoTime 与 System.currentTimeMillis 的单调性与精度差异 A nanoTime 受 NTP 影响 B nanoTime 单调高精度适合相对计时,currentTimeMillis 受时钟调整影响 ✓ 正确答案 C 两者精度相同 D currentTimeMillis 单调
# 7. 时间轮相比 DelayedQueue/堆的 O(1) 调度优势 A 两者性能相同 B 时间轮按槽位 O(1) 入队,海量任务下优于堆的 O(log n) ✓ 正确答案 C 时间轮入队 O(log n) D 堆 O(1) 入队
# 8. 精度要求毫秒级场景的调度选型(时间轮 vs 红黑树) A 红黑树 O(1) B 时间轮不适用毫秒级 C 时间轮精度无限制 D 时间轮 tick 设小可毫秒级但扫描开销大,红黑树精确但 O(log n) ✓ 正确答案
# 9. 调度任务的触发时间计算,Cron 表达式解析的时区与夏令时处理 A 需明确时区并定义夏令时跳时/重复策略,避免触发错乱 ✓ 正确答案 B 夏令时无影响 C Cron 自动处理一切 D 时区无关紧要
# 10. 定时任务丢触发(misfire)的语义,补偿执行与跳过策略如何选择 A misfire 无需处理 B 总是补偿 C 总是跳过 D 补偿执行保不漏执行,跳过保节奏,按任务性质选型 ✓ 正确答案
# 11. 高并发定时任务(百万级延迟任务)的内存与精度权衡 A 精度与内存无关 B 内存与任务数无关 C 任务对象内存大,精度与 tick 成反比(tick 小精度高但开销大) ✓ 正确答案 D tick 越小开销越小
# 12. 时间轮的层级(HashedWheelTimer)与简单时间轮在任务跨度大时的内存差异 A 层级时间轮内存更大 B 两者跨度处理相同 C 层级时间轮用多级级联覆盖大跨度,内存小;简单时间轮跨度大需巨槽 ✓ 正确答案 D 简单时间轮跨度大内存小
# 13. TimerTask 与 ScheduledThreadPoolExecutor 的弃用与替代,单线程定时器的精度与阻塞问题 A Timer 多线程 B Timer 单线程任务阻塞/异常影响全部,ScheduledThreadPoolExecutor 并发隔离 ✓ 正确答案 C 两者等价 D ScheduledThreadPoolExecutor 单线程
# 14. foreign function 调用结合向量计算的端到端案例 A FFM 无原生内存 B 两者无法结合 C Vector 只处理堆数据 D FFM 调原生库,MemorySegment 承载数据,Vector API 向量化处理 ✓ 正确答案
# 16. 时间轮的 tick、wheelSize、round 参数对延迟的影响 A tick 定精度、wheelSize 定覆盖、round 定长延迟,均影响扫描/内存开销 ✓ 正确答案 B round 无开销 C wheelSize 与精度无关 D tick 越大精度越高
# 17. 调度器的线程模型,单线程调度循环 vs 多线程 worker 在任务隔离上的差异 A 单线程串行无隔离,多线程 worker 并行隔离 ✓ 正确答案 B 多线程无隔离 C 两者隔离相同 D 单线程支持并行
# 18. 定时任务的执行时长超过调度周期时的重叠问题,单线程 vs 多线程调度的取舍 A 重叠无影响 B 单线程并发执行 C 多线程不重叠 D 单线程推迟保序不重叠,多线程并发执行需防重入 ✓ 正确答案
# 19. 时间轮任务取消的实现,删除标记 vs 惰性跳过在并发场景的差异 A 两者并发相同 B 惰性跳过立即移除 C 删除标记立即移除但并发删除复杂,惰性跳过简单但任务残留 ✓ 正确答案 D 删除标记残留
# 21. 定时任务的幂等与重复触发防护,调度端去重 vs 执行端状态校验 A 只要执行端幂等 B 调度端去重防重复调度,执行端幂等防重复副作用,两层结合 ✓ 正确答案 C 无需防护 D 只要调度端去重
# 22. 调度系统的可观测性,任务延迟、执行时长与丢失次数的指标设计 A 无需计数 B 只记录成功 C 延迟不重要 D 用 Timer 记录延迟与耗时、Counter 统计失败丢失、Gauge 监控队列 ✓ 正确答案
# 24. 分布式调度中的时钟同步,NTP 偏移对多节点任务触发一致性的影响 A 各节点时钟天然一致 B NTP 偏移致触发时间漂移,用分布式锁/选主或中心时间对齐保证一致 ✓ 正确答案 C 无需处理时钟 D NTP 偏移无影响
# 25. 延迟任务的批量到期处理,时间轮如何一次取出所有到期任务并批量执行 A tick 到槽时一次取出该槽到期任务批量执行,提升吞吐 ✓ 正确答案 B 批量会有重复执行 C 无法批量 D 每次都逐条执行
# 27. 定时任务与虚拟线程的结合,虚拟线程执行调度任务的资源模型 A 虚拟线程阻塞释放平台线程,适合大量 I/O 密集调度任务 ✓ 正确答案 B 虚拟线程无法调度 C 虚拟线程占平台线程 D CPU 密集受益最大
# 28. 时间轮的扩容与降级,任务量变化时 wheelSize 与 tick 如何动态调整 A wheelSize 不变也可变 B 无需考虑任务量 C 调整 wheelSize/tick 需重建轮并重映射,常按峰值预估固定参数 ✓ 正确答案 D 动态调整无成本
# 31. Vector API 与自动向量化的触发条件,何时手写 SIMD 代码能获得稳定收益 A 自动向量化失效或需稳定性能时手写 Vector API 收益稳定 ✓ 正确答案 B 手写比标量慢 C 自动向量化总能覆盖 D 手写无收益
# 32. Vector API 的跨平台可移植性,VectorSpecies 如何按硬件选择最优宽度 A 只在 Intel 可用 B 用 SPECIES 表达硬件最优宽度,代码跨 CPU 自适应 ✓ 正确答案 C 无跨平台性 D 硬编码 lane 数
# 34. Panama 向量化 Math 库(VectorMath)的超越函数 A 只能标量 B 用 SIMD 向量化实现 exp/log/sin 等,批量计算吞吐提升 ✓ 正确答案 C 无精度差异 D 只用于整数
# 36. Vector API 与 MemorySegment(FFM)协同零拷贝处理 A 无法处理原生内存 B 零拷贝无收益 C 必须拷贝为数组 D fromMemorySegment 直接在原生内存向量化,避免数组拷贝实现零拷贝 ✓ 正确答案
# 37. Vector API 处理堆外内存避免越界的边界检查消除 A 每元素都检查 B 无法消除边界检查 C 主循环用 loopBound 分离,避免逐元素边界检查 ✓ 正确答案 D 边界检查无开销
# 38. VectorMask 掩码在条件分支 SIMD 化中的作用 A 掩码与分支无关 B 用 lane 掩码 + select/blend 把条件分支向量化为无分支 SIMD ✓ 正确答案 C 只能标量分支 D 掩码增加分支
# 39. Vector API 的掩码(VectorMask)在条件赋值中的应用,与分支标量路径的性能对比 A 掩码无分支批量处理,条件随机数据大时优于标量分支 ✓ 正确答案 B 掩码与分支相同 C 标量分支总是更快 D 掩码只适用于串行
# 40. 同一算法在不同 CPU(AVX2/AVX512)上的向量宽度差异 A AVX512 永不降频 B AVX2 位更宽 C 两者宽度相同 D AVX512 宽度大吞吐高但可能降频,按 SPECIES 自适应 ✓ 正确答案
# 42. 向量化实现 JSON/CSV 数值解析(parseInt/parseDouble) A 数值解析无法向量化 B 只能逐字符 C SIMD 扫描定位数字边界并批量解析,大数据量 JSON/CSV 吞吐提升 ✓ 正确答案 D 只用于小数据
# 46. 向量化距离计算(L2/余弦)在 Embedding 比对的应用 A SIMD 批量点积与平方差,高维 Embedding 批量比对吞吐提升 ✓ 正确答案 B 只能逐维 C 距离无法向量化 D 无收益
# 47. 向量化字符串处理,SIMD 加速的字符扫描(indexOf/空白检测)实现原理 A 无收益 B 只能逐字符 C 批量加载多字符比较 + 位掩码定位,跳过非命中区域 ✓ 正确答案 D 无法扫描
# 49. Vector API 的加载/存储对齐,MemorySegment 与数组的 fromArray/intoArray 性能边界 A 对齐无影响 B unchecked 不安全也没关系 C 边界检查无开销 D 未对齐访问开销大,unchecked 跳过边界检查提升性能但需保证安全 ✓ 正确答案
# 50. 自动向量化日志(-XX:+PrintAssembly)分析方法 A 无法看汇编 B 查看汇编中的 SIMD 指令(v 前缀/ymm)确认向量化 ✓ 正确答案 C 汇编无 SIMD 信息 D 只需看日志
# 51. Vector API 的 reduce 操作(addLanes)与归约顺序的数值稳定性 A 归约顺序固定无差异 B 浮点归约顺序无关 C 浮点不满足结合律,归约顺序不同结果有差异,树状归约减少误差 ✓ 正确答案 D 整数归约也有误差
# 52. Vector API 在 JDK 的孵化/预览状态,API 变更对生产代码的风险与隔离方式 A API 稳定无需隔离 B 隔离无意义 C 封装在隔离层并设计稳定接口,升级 JDK 只改隔离层 ✓ 正确答案 D 在业务代码散落使用
# 53. SIMD 宽度的选择,128/256/512 位向量在吞吐与降频之间的权衡 A 512 位永不降频 B 512 位吞吐高但可能降频,256 位平衡,按功耗余量选择 ✓ 正确答案 C 宽度无影响 D 128 位吞吐最高
# 54. Vector API 的 lane 数(VLENGTH)如何随 CPU 变化,代码如何保持可移植 A 无法跨 CPU B 硬编码 lane 数 C lane 数固定 D 用 SPECIES.length()/loopBound 自适应 lane 数,不硬编码 ✓ 正确答案
# 55. 向量化代码的基准测试,JMH 中如何避免 JIT 常量折叠与自动向量化干扰 A 结果直接返回即可 B 常量折叠利于测试 C 无需预热 D 用 Blackhole/返回结果防常量折叠与死代码消除,充分预热 ✓ 正确答案
# 56. Vector API 与 ByteBuffer 的互操作,堆外内存的向量化读写 A ByteBuffer 的 direct 内存经 MemorySegment 视图后向量化读写 ✓ 正确答案 B 无互操作 C 无法处理堆外 D 必须拷贝为数组
# 57. 自动向量化的诊断,-XX:+PrintAssembly 与 JIT 编译日志如何确认 SIMD 生成 A 汇编无 SIMD 信息 B 无法确认 C PrintAssembly 看 v 指令/ymm 寄存器,PrintCompilation 看编译 ✓ 正确答案 D 只需 PrintCompilation
# 58. Vector API 的 gracefully 降级,不支持 SIMD 的 CPU 上如何保持正确性 A 降级会出错 B 不支持 SIMD 时 lane 数退化但结果正确,无需专门代码 ✓ 正确答案 C 必须写标量回退 D 不支持 SIMD 无法运行
# 59. 向量化在数据处理管线中的收益,批量数值转换与统计计算的实测对比 A 仅小数据有收益 B 复杂操作收益最大 C 批量转换/统计用 SIMD 吞吐数倍提升,操作简单数据量大时明显 ✓ 正确答案 D 无收益
# 60. JDK Vector API 的 VectorSpecies 与 Vector 类型及伪代码示例 A VectorSpecies 定形状,Vector 提供元素运算,fromArray/intoArray 加载存储 ✓ 正确答案 B 无 mask/shuffle C VectorSpecies 是运算 D 只有一种类型
# 61. MemorySegment 的 alignedSlice 对向量加载的影响 A alignedSlice 提供对齐切片,保证向量加载对齐、避免未对齐开销 ✓ 正确答案 B alignedSlice 降低性能 C 向量加载无需对齐 D 对齐无影响
# 62. Vector API 与 FFM API 协同实现 native 数组批量运算 A 无协同 B 必须拷贝到 Java 数组 C 无法处理 native 数组 D 在 native 内存上向量化运算,零拷贝批量处理 ✓ 正确答案
# 63. Vector API 与 Project Panama 整体定位(替代 JNI) A 无性能目标 B FFM 与 Vector API 替代 JNI,提供安全高性能的原生互操作与 SIMD ✓ 正确答案 C 只用于内存 D 与 JNI 无关
# 64. Vector API 在 JDK 25/26 的孵化状态与启用参数 A 无需参数 B 已稳定 C 位于 jdk.incubator.vector 模块,需 --add-modules 启用 ✓ 正确答案 D 默认可用
# 65. Vector API 生成的是 IR 而非直接机器码的实现机制 A 直接生成机器码 B 无 IR C 平台相关 D Java 层 Vector 操作编译为 C2 向量 IR,后端按 CPU 生成 SIMD 机器码 ✓ 正确答案
# 66. Vector API 的 fromArray/intoArray 内存对齐要求 A 向量宽度对齐获得最优性能,未对齐正确但可能慢 ✓ 正确答案 B 必须对齐否则出错 C 对齐无影响 D 未对齐更快
# 67. Vector API 从 SIMD 路径优雅降级(graceful degradation)到标量路径的条件与性能代价 A 不支持 SIMD 时降级为标量逐 lane 执行,正确但无 SIMD 加速 ✓ 正确答案 B 永不降级 C 降级更快 D 降级出错
# 68. Vector API 的 lane 概念与固定向量长度(256/512 bit)映射 A 与元素位宽无关 B 512bit 总是 8 lane C lane 数固定 D lane 数 = 向量位宽 / 元素位宽,256bit float 是 8 lane ✓ 正确答案
# 70. Vector API 的 FMA(乘加融合)在数值计算中的精度与性能 A 性能更差 B 精度更低 C 融合乘加减少中间舍入与指令,精度与性能更优但结果可能不同 ✓ 正确答案 D 结果总与标量相同
# 72. 用 Vector API 实现数组逐元素求和与均值 A fromArray 加载 + reduceLanes 归约 + 标量处理剩余,SIMD 并行累加 ✓ 正确答案 B 无收益 C 无法归约 D 只能标量
# 73. 通过 JMH 对比 Vector API 与标量实现的吞吐差异 A 双 benchmark 同数据预热对比,大数据量才显向量化收益 ✓ 正确答案 B 无需预热 C 无法对比 D 小数据量收益最大