# 1. @Caching 组合注解在多缓存操作中的事务边界与回滚行为 A @Caching 只能组合一个注解 B 缓存操作与事务无关 C 事务回滚后缓存自动回滚 D @Caching 组合多缓存操作,需让缓存操作与事务提交对齐,避免回滚后缓存不一致 ✓ 正确答案
# 2. @Lock 与悲观锁/乐观锁 A @Lock(PESSIMISTIC_WRITE) 加数据库悲观锁,乐观锁用 @Version 版本字段校验 ✓ 正确答案 B @Lock 只能加乐观锁 C 悲观锁无需加锁 D @Version 与乐观锁无关
# 3. CSRF Token 的 Cookie 双重提交模式与 SameSite Cookie 的协同防御 A 双重提交无需校验 B 两者互斥 C SameSite 与 CSRF 无关 D Cookie 双重提交校验 Token 一致性,SameSite 阻止跨站 Cookie 发送,叠加纵深防御 ✓ 正确答案
# 4. CSRF 防护原理(同步器令牌模式)与前后端分离/纯 API 场景下的取舍(禁用 CSRF) A 纯 API 必须启用 CSRF B 同步器令牌用不可读 Token 防 CSRF,纯 API 无 Cookie 会话时 CSRF 风险低可禁用 ✓ 正确答案 C CSRF 与 Cookie 无关 D 无状态 API 仍依赖 Cookie 会话
# 5. Caffeine 缓存的 maximumSize/expireAfterWrite/refreshAfterWrite 调优 A maximumSize 控内存、expireAfterWrite 控过期、refreshAfterWrite 平滑刷新,三者组合平衡 ✓ 正确答案 B refreshAfterWrite 无需 CacheLoader C expireAfterWrite 阻止刷新 D maximumSize 影响新鲜度
# 6. RememberMe 的实现(TokenBasedRememberMeServices) A 令牌无法防篡改 B 令牌无需签名 C 它生成含用户名、过期时间、签名的令牌存 Cookie,校验后恢复登录态 ✓ 正确答案 D 它必须持久化令牌
# 7. Token 存储(内存、Redis、数据库)的安全边界 A 存储介质无需防护 B 内存适合多实例 C Token 无需加密 D 内存单机、Redis 分布式共享需防护、数据库持久可审计,Token 需加密与过期 ✓ 正确答案
# 8. publishOn 与 subscribeOn 对线程切换的影响范围有何不同,多个 publishOn 串联时信号在哪些调度器间流转 A 每个 publishOn 切换其下游 operator 到指定调度器,链被切成多个执行段 ✓ 正确答案 B 只有第一个 publishOn 生效 C subscribeOn 影响下游数据流 D publishOn 影响订阅
# 9. 两级缓存(Local + Remote)的实现策略 A 本地缓存存全量数据 B 本地缓存无需同步 C 两级缓存无一致性开销 D 本地缓存提供快读、远程缓存分布式共享,本地失效需广播同步避免不一致 ✓ 正确答案
# 11. SelectionKey 被取消后何时才从各集合移除,处理已取消键时为何可能看到 CancelledKeyException A 已取消键可正常操作 B 取消后立即移除 C 键取消后延迟到 select 时移除,处理已取消键需 isValid 检查避免 CancelledKeyException ✓ 正确答案 D CancelledKeyException 无法避免
# 13. @AuthenticationPrincipal 的应用 A 它需要手动解析认证 B 它注入的是未认证主体 C 它只能注入字符串 D 它注入当前已认证用户到方法参数,避免手动从 SecurityContext 获取 ✓ 正确答案
# 14. @Caching 与复合注解 A @Caching 只能组合一个注解 B @Caching 组合多个缓存注解执行多缓存操作,复合注解是自定义组合提升复用 ✓ 正确答案 C 复合注解与 @Caching 无关 D 无法自定义组合注解
# 15. @EntityGraph 与 N+1 查询问题 A 它与 N+1 无关 B 它只能加载一层关联 C 通过 attributePaths 声明关联 eager 加载,避免懒加载 N+1 ✓ 正确答案 D 它改变查询语义
# 16. @Modifying 与批量更新 A 批量更新走实体管理 B @Modifying + @Query 执行批量 DML,需 clearAutomatically/flushAutomatically 保证一致 ✓ 正确答案 C 无需配置 clearAutomatically D 批量更新返回实体
# 17. @PreAuthorize/@PostAuthorize 与方法级安全 A 两者都在执行前校验 B @PreAuthorize 进入前鉴权,@PostAuthorize 返回后基于返回值授权 ✓ 正确答案 C @PostAuthorize 无法访问返回值 D 方法级安全无需开启
# 18. @Query 与 JPQL 的使用 A @Query 只能写原生 SQL B JPQL 面向数据库表 C nativeQuery 跨数据库 D @Query 可写 JPQL(面向实体跨库)或 nativeQuery(原生 SQL),参数用 :param 绑定 ✓ 正确答案
# 19. @QueryHints 与 Hibernate Hint 传递 A 无法控制查询行为 B 它只能加注释 C 与 Hibernate 无关 D 它传递 QueryHint 给 Hibernate 控制 fetch size、超时等查询优化 ✓ 正确答案
# 20. AccessDecisionManager 与投票者 A AccessDecisionManager 汇总投票者投票,按 Affirmative/Consensus/Unanimous 策略决策 ✓ 正确答案 B 投票者单独决策 C 无决策策略 D 投票者与授权无关
# 21. AccessDeniedHandler 在 RBAC/ABAC 权限模型中的自定义响应(避免泄露权限策略细节) A 与权限模型无关 B 应返回具体缺失权限 C 自定义它返回统一错误响应,避免泄露具体权限策略细节 ✓ 正确答案 D 响应无需安全处理
# 22. Aggregator/Splitter 的边界 A 两者都只拆分 B 两者都只聚合 C Splitter 一对多拆分,Aggregator 多对一聚合,配合关联与释放策略 ✓ 正确答案 D 聚合无需关联策略
# 23. AuthenticationManager 与 ProviderManager 的委派 A 只有一个 Provider B ProviderManager 自己完成认证 C ProviderManager 委派给多个 AuthenticationProvider 逐个尝试认证,实现多认证方式 ✓ 正确答案 D 委派与认证无关
# 24. Bridge 与路由(Router)的工程应用 A 与工程无关 B 两者都只做分发 C 两者都解耦抽象 D Bridge 解耦抽象与实现,Router 按规则分发请求到不同目标 ✓ 正确答案
# 25. CompletionHandler 的回调语义 A 异步 IO 完成后回调 completed(成功)或 failed(失败),在完成线程执行 ✓ 正确答案 B 回调只在发起线程执行 C 无失败回调 D 回调与结果无关
# 26. FileStore 与磁盘空间查询 A 无法查询空间 B 它只表示文件 C FileStore 表示文件系统存储,getTotalSpace/getUsableSpace 查询磁盘空间 ✓ 正确答案 D 与磁盘监控无关
# 27. FileVisitor 的递归遍历 A 它只能遍历一层 B walkFileTree + FileVisitor 回调递归遍历目录树,处理文件/目录与失败 ✓ 正确答案 C 无失败处理 D 与目录操作无关
# 28. Java ZipFileSystem 与 jar/zip 操作 A 它把 zip/jar 作为文件系统,用标准 Files API 操作内部文件 ✓ 正确答案 B 它只能读不能写 C 需要第三方库 D 无法遍历 zip
# 29. MessageHandler/MessageProducer 的自定义 A 两者都只产生消息 B MessageHandler 处理消息,MessageProducer 产生消息,自定义可接入外部系统 ✓ 正确答案 C 两者都只处理消息 D 无法自定义
# 30. OP_CONNECT 就绪后为什么必须调用 finishConnect,连接失败时应清理哪些键和附件资源 A OP_CONNECT 就绪后需 finishConnect 确认连接,失败需取消键、关通道、释放附件 ✓ 正确答案 B 无需 finishConnect C 连接失败无需清理 D 附件无需释放
# 31. OpenID Connect(OIDC)的 id_token 与 nonce A id_token 携带身份声明,nonce 校验一次性随机值防重放 ✓ 正确答案 B nonce 用于授权 C id_token 不携带身份 D nonce 与重放无关
# 32. Pageable 与 Page<T> 的分页实现 A 深分页无性能问题 B Page 不含总数 C Pageable 只能自定义构造 D Pageable 传分页参数,Page 返回结果含总数,查询执行 limit/offset + count ✓ 正确答案
# 33. Refresh Token 的轮换(Rotation)与重用检测 A 轮换签发新令牌使旧令牌失效,重用检测发现复用则撤销整个令牌族 ✓ 正确答案 B 轮换不更新令牌 C 重用检测无需存储 D 两者无安全价值
# 34. SelectionKey 的兴趣集(interest set)与就绪集(ready set)的位运算操作细节 A 位运算只用于连接 B 两者不能用位运算 C interestOps 表示就绪 D interestOps 用位组合关注事件,readyOps 用位检测就绪事件,| 组合 & 检测 ✓ 正确答案
# 35. SelectionKey 的四种事件(OP_READ/OP_WRITE/OP_CONNECT/OP_ACCEPT) A OP_WRITE 很少就绪 B OP_ACCEPT 用于客户端 C OP_ACCEPT 接收连接、OP_CONNECT 连接完成、OP_READ 可读、OP_WRITE 可写 ✓ 正确答案 D 只有两种事件
# 36. SelectionKey.attach 与 attachment A 附件只能存 Buffer B attach 把连接状态绑定到 SelectionKey,attachment 获取,事件就绪时快速关联 ✓ 正确答案 C 附件无需清理 D attach 影响事件
# 37. SelectionKey.interestOps 与监听事件变更 A interestOps 动态切换监听事件(如读写切换),OP_WRITE 需按需注册 ✓ 正确答案 B interestOps 只能读 C 事件监听不可变 D OP_WRITE 常开无问题
# 38. SessionManagementFilter 的会话固定防护 A 登录后更换 Session ID(changeSessionId)使攻击者固定的会话失效,防会话固定 ✓ 正确答案 B 保持 Session ID 不变 C 会话固定无需防护 D 攻击者无法固定会话
# 39. Specification 与动态查询构造 A 它只能静态查询 B 它基于 Criteria API 动态组合查询条件,配合 JpaSpecificationExecutor 实现动态筛选 ✓ 正确答案 C 无法组合条件 D 与 Repository 无关
# 40. Spring Authorization Server 的多租户支持 A 通过客户端注册、用户存储与授权配置按租户隔离,用租户上下文路由 ✓ 正确答案 B 所有租户共享一切 C 无法多租户 D 租户隔离与配置无关
# 41. StandardOpenOption 的语义与组合 A 只能单独使用 B 它定义文件打开选项,组合如 WRITE+CREATE+TRUNCATE 控制创建覆盖追加 ✓ 正确答案 C 选项与打开行为无关 D 无覆盖选项
# 42. Token Introspection 与 RFC 7662 A 资源服务器通过自省端点远程校验令牌有效性、作用域、过期,适合不透明令牌 ✓ 正确答案 B 自省是本地校验 C 无协议规范 D 自省与作用域无关
# 43. Token 撤销(Revocation)与登出端点 A 登出与撤销无关 B 令牌无法撤销 C RFC 7009 撤销端点使令牌失效,OIDC 登出端点结束会话并触发撤销 ✓ 正确答案 D 撤销无需存储状态
# 44. UserDetailsService 与 UserDetailsManager 的契约 A 两者都只读 B UserDetailsService 加载用户,UserDetailsManager 增加创建/更新/删除用户管理能力 ✓ 正确答案 C 两者都管理用户 D 契约完全相同
# 45. WatchService 与目录监控 A 它只监听文件内容 B 它自动递归子目录 C 事件不会丢失 D 它监听目录的创建/修改/删除事件,需递归注册子目录并 reset 继续监听 ✓ 正确答案
# 46. WebClient 相比 RestTemplate 的非阻塞与流式能力体现在哪里,RestClient 又填补了怎样的同步场景空缺 A 三者等价 B 三者都是非阻塞 C RestClient 是响应式 D WebClient 非阻塞流式,RestTemplate 阻塞,RestClient 提供现代同步 API 填补空缺 ✓ 正确答案
# 47. scope 与 authority 的映射 A 两者无关 B scope 映射为 SCOPE_xxx 的 authority,衔接 OAuth 授权与 Spring Security 授权 ✓ 正确答案 C scope 直接是角色 D 无法映射
# 48. selectedKeys() 与迭代器的处理(必须显式移除) A 残留键无影响 B 无需 remove C 处理完每个就绪键必须调用迭代器 remove,否则残留导致重复处理与 CPU 空转 ✓ 正确答案 D remove 会导致异常
# 49. 函数式端点(RouterFunction/HandlerFunction)与注解式控制器在路由匹配、可组合性与测试方式上的取舍 A 注解式更灵活 B 两者等价 C 函数式不可组合 D 注解式声明式直观,函数式 RouterFunction 可组合更灵活,按路由复杂度选择 ✓ 正确答案
# 50. 原生查询(nativeQuery = true)的取舍 A 原生查询可移植 B nativeQuery 性能与数据库特性优先但不可移植,JPQL 可移植类型安全,按需取舍 ✓ 正确答案 C JPQL 性能更好 D 两者完全等价
# 52. 客户端凭证模式(Client Credentials)的应用 A 客户端用 client_id+secret 换取令牌,无用户参与,适合服务间通信 ✓ 正确答案 B 需要用户授权 C 只适合用户登录 D 无需 client_secret
# 53. 方法名查询(findByXxx)的命名规则 A 方法名随意命名 B findBy 前缀 + 属性 + 关键字(And/Or/Between 等)解析为查询,属性需与实体对应 ✓ 正确答案 C 关键字与查询无关 D 无需属性对应
# 54. 远端半关闭连接时 read 返回负一,但本地仍可能写入,协议层应怎样定义半关闭策略 A read -1 表示连接已完全关闭 B read 返回 -1 表示远端不再发送但本地仍可写,协议层需定义 EOF 后的响应与关闭策略 ✓ 正确答案 C 半关闭后不能写 D 无需定义策略
# 55. 适配器(Adapter)模式与外部系统集成 A Adapter 把不兼容外部接口适配为统一接口,屏蔽差异、解耦集成 ✓ 正确答案 B 适配器只用于测试 C 外部系统无需适配 D 适配器与集成无关
# 56. 遍历 selectedKeys 后忘记调用迭代器 remove,会导致哪些重复处理与 CPU 占用问题 A 残留键导致重复处理与 CPU 空转,必须处理完每个键后 remove ✓ 正确答案 B 残留键无影响 C 只影响一次处理 D CPU 占用不变
# 57. 非阻塞 accept 应循环到返回 null,连接洪峰下又如何设置每轮接收上限保证公平性 A 上限降低公平性 B 一直循环 accept 无问题 C 无需上限 D accept 循环到 null 处理完连接,但需设每轮上限防连接洪峰饿死其他事件 ✓ 正确答案
# 58. JDK 25 Scoped Values 与 I/O 线程切换 A Scoped Values 与 ThreadLocal 相同 B Scoped Values 在结构化作用域内传播不可变上下文,支持 I/O 线程切换,比 ThreadLocal 更安全 ✓ 正确答案 C I/O 切换丢失上下文 D Scoped Values 可变
# 59. JDK 25 中 HttpClient(Java 11+)对 HTTP/2 与 WebSocket 的原生支持与连接复用 A 无连接复用 B 只支持 HTTP/1.1 C HttpClient 原生支持 HTTP/2 与 WebSocket,连接池复用连接,支持同步/异步 ✓ 正确答案 D 不支持 WebSocket
# 60. JDK 25 虚拟线程下 I/O 模型变化 A 必须用异步 NIO B 虚拟线程不改变 I/O C 阻塞 I/O 仍占平台线程 D 虚拟线程让阻塞 I/O 挂起让出载体线程,同步阻塞模型即可高并发,无需异步 NIO ✓ 正确答案
# 61. Pageable/Page 分页查询在大数据量下的 Slice 替代与性能取舍 A Page 更轻量 B Slice 也查总数 C Page 带 count 查询开销大,Slice 无总数更轻量,大数据量用 Slice 或游标分页 ✓ 正确答案 D 分页无性能问题