练习 / jvm

Java 练习

Java 的全部练习都来自可随时对照的主题。

81项练习 离线运行
jvm 测验 新题 注解接口没有 `@Retention` 时采用哪种保留策略? Java 注解为声明和类型使用位置附加结构化元数据;理解目标、保留策略、反射读取与编译期处理,才能让元数据真正生效。 入门 1分钟 · 来自 注解 jvm 测验 新题 `@Inherited` 会让子类查询继承什么? Java 注解为声明和类型使用位置附加结构化元数据;理解目标、保留策略、反射读取与编译期处理,才能让元数据真正生效。 进阶 1分钟 · 来自 注解 jvm 预测输出 新题 这段程序会输出什么? Java 注解为声明和类型使用位置附加结构化元数据;理解目标、保留策略、反射读取与编译期处理,才能让元数据真正生效。 进阶 2分钟 · 来自 注解 jvm 审查 AI 代码 新题 审查生成的角色调度器 Java 注解为声明和类型使用位置附加结构化元数据;理解目标、保留策略、反射读取与编译期处理,才能让元数据真正生效。 高级 6分钟 · 来自 注解 jvm 找出 bug 新题 找出调度任务注解里的 bug Java 注解为声明和类型使用位置附加结构化元数据;理解目标、保留策略、反射读取与编译期处理,才能让元数据真正生效。 入门 4分钟 · 来自 注解 jvm 测验 新题 为什么只显示一个符号的 Java String,其 length() 可能为 2? Java 基本类型与引用类型的边界、数值转换规则、装箱语义,以及会在生产代码中造成错误的类型陷阱。 入门 1分钟 · 来自 数据类型 jvm 预测输出 新题 这段程序会输出什么? Java 基本类型与引用类型的边界、数值转换规则、装箱语义,以及会在生产代码中造成错误的类型陷阱。 进阶 2分钟 · 来自 数据类型 jvm 审查 AI 代码 新题 审查生成的发票合计 Java 基本类型与引用类型的边界、数值转换规则、装箱语义,以及会在生产代码中造成错误的类型陷阱。 高级 6分钟 · 来自 数据类型 jvm 找出 bug 新题 找出存储量估算里的 bug Java 基本类型与引用类型的边界、数值转换规则、装箱语义,以及会在生产代码中造成错误的类型陷阱。 入门 4分钟 · 来自 数据类型 jvm 测验 新题 哪一种扩大基本类型转换可能丢失数值精度? Java 基本类型与引用类型的边界、数值转换规则、装箱语义,以及会在生产代码中造成错误的类型陷阱。 进阶 1分钟 · 来自 数据类型 jvm 测验 新题 方法调用可能抛出检查型异常的代码时,必须怎么做? Java 异常的传播、检查型与非检查型边界、精确捕获、资源关闭、原因链,以及生成代码中常见的失败处理错误。 入门 1分钟 · 来自 异常处理 jvm 预测输出 新题 这段程序会输出什么? Java 异常的传播、检查型与非检查型边界、精确捕获、资源关闭、原因链,以及生成代码中常见的失败处理错误。 入门 2分钟 · 来自 异常处理 jvm 审查 AI 代码 新题 审查生成的订单导入器 Java 异常的传播、检查型与非检查型边界、精确捕获、资源关闭、原因链,以及生成代码中常见的失败处理错误。 高级 6分钟 · 来自 异常处理 jvm 找出 bug 新题 找出阻塞任务里的 bug Java 异常的传播、检查型与非检查型边界、精确捕获、资源关闭、原因链,以及生成代码中常见的失败处理错误。 进阶 4分钟 · 来自 异常处理 jvm 测验 新题 在 try-with-resources 中,主体抛出 A,随后 close() 抛出 B。通常会传播什么? Java 异常的传播、检查型与非检查型边界、精确捕获、资源关闭、原因链,以及生成代码中常见的失败处理错误。 进阶 1分钟 · 来自 异常处理 jvm 测验 新题 哪项修改能让后续读取的局部变量满足明确赋值? 用 Java 25 理解程序结构、变量作用域、表达式求值与控制流,并避开短路、分支和循环中的常见错误。 入门 1分钟 · 来自 Java 语言基础 jvm 预测输出 新题 这段程序会输出什么? 用 Java 25 理解程序结构、变量作用域、表达式求值与控制流,并避开短路、分支和循环中的常见错误。 入门 2分钟 · 来自 Java 语言基础 jvm 审查 AI 代码 新题 审查生成的批次标签规划器 用 Java 25 理解程序结构、变量作用域、表达式求值与控制流,并避开短路、分支和循环中的常见错误。 进阶 6分钟 · 来自 Java 语言基础 jvm 找出 bug 新题 找出合计循环里的 bug 用 Java 25 理解程序结构、变量作用域、表达式求值与控制流,并避开短路、分支和循环中的常见错误。 入门 4分钟 · 来自 Java 语言基础 jvm 测验 新题 Java switch 表达式的块规则怎样产生值? 用 Java 25 理解程序结构、变量作用域、表达式求值与控制流,并避开短路、分支和循环中的常见错误。 入门 1分钟 · 来自 Java 语言基础 jvm 测验 新题 哪个签名既能接收 `Integer` 源列表和 `Number` 目标列表,又保留类型安全? Java 泛型用类型参数表达跨位置的类型关系;掌握边界、通配符与类型擦除,才能设计安全且灵活的 API。 进阶 1分钟 · 来自 泛型 jvm 测验 新题 哪项操作合法,其原因是被检查的类型可具体化? Java 泛型用类型参数表达跨位置的类型关系;掌握边界、通配符与类型擦除,才能设计安全且灵活的 API。 进阶 1分钟 · 来自 泛型 jvm 预测输出 新题 这段程序会输出什么? Java 泛型用类型参数表达跨位置的类型关系;掌握边界、通配符与类型擦除,才能设计安全且灵活的 API。 进阶 2分钟 · 来自 泛型 jvm 审查 AI 代码 新题 审查生成的读数合并器 Java 泛型用类型参数表达跨位置的类型关系;掌握边界、通配符与类型擦除,才能设计安全且灵活的 API。 高级 6分钟 · 来自 泛型 jvm 找出 bug 新题 找出 raw List 里的 bug Java 泛型用类型参数表达跨位置的类型关系;掌握边界、通配符与类型擦除,才能设计安全且灵活的 API。 进阶 4分钟 · 来自 泛型 jvm 测验 新题 局部类捕获 List<String> events 时,哪项操作在 events 保持实际 final 的情况下合法? 区分嵌套类与内部类,掌握外围实例、局部变量捕获和匿名类,并避免生成代码中的生命周期与语义错误。 进阶 1分钟 · 来自 内部类 jvm 测验 新题 哪项陈述正确使用了 Java 25 规范术语? 区分嵌套类与内部类,掌握外围实例、局部变量捕获和匿名类,并避免生成代码中的生命周期与语义错误。 入门 1分钟 · 来自 内部类 jvm 预测输出 新题 这段程序会输出什么? 区分嵌套类与内部类,掌握外围实例、局部变量捕获和匿名类,并避免生成代码中的生命周期与语义错误。 入门 2分钟 · 来自 内部类 jvm 审查 AI 代码 新题 审查生成的任务回调工厂 区分嵌套类与内部类,掌握外围实例、局部变量捕获和匿名类,并避免生成代码中的生命周期与语义错误。 高级 6分钟 · 来自 内部类 jvm 找出 bug 新题 找出内部类工厂里的 bug 区分嵌套类与内部类,掌握外围实例、局部变量捕获和匿名类,并避免生成代码中的生命周期与语义错误。 进阶 4分钟 · 来自 内部类 jvm 测验 新题 哪项改动一定会让有效的函数式接口不再是函数式接口? Java 接口定义可替换的行为契约;掌握成员规则、默认方法冲突、函数式接口与安全演进方式。 进阶 1分钟 · 来自 接口 jvm 测验 新题 在接口中声明 `List<String> EVENTS = new ArrayList<>();`,哪项描述正确? Java 接口定义可替换的行为契约;掌握成员规则、默认方法冲突、函数式接口与安全演进方式。 入门 1分钟 · 来自 接口 jvm 预测输出 新题 这段程序会输出什么? Java 接口定义可替换的行为契约;掌握成员规则、默认方法冲突、函数式接口与安全演进方式。 入门 2分钟 · 来自 接口 jvm 审查 AI 代码 新题 审查生成的令牌授权器 Java 接口定义可替换的行为契约;掌握成员规则、默认方法冲突、函数式接口与安全演进方式。 高级 6分钟 · 来自 接口 jvm 找出 bug 新题 找出默认方法类里的 bug Java 接口定义可替换的行为契约;掌握成员规则、默认方法冲突、函数式接口与安全演进方式。 进阶 4分钟 · 来自 接口 jvm 测验 新题 本主题中的哪项特性是在 Java 17 正式发布的? 梳理 Java 17 源码级别可用的稳定语言特性,用可运行示例说明机制,并划清迁移时最容易混淆的版本边界。 入门 1分钟 · 来自 Java 17 新特性 jvm 预测输出 新题 这段 Java 17 程序会输出什么? 梳理 Java 17 源码级别可用的稳定语言特性,用可运行示例说明机制,并划清迁移时最容易混淆的版本边界。 入门 2分钟 · 来自 Java 17 新特性 jvm 预测输出 新题 这段程序会输出怎样的记录组件状态? 梳理 Java 17 源码级别可用的稳定语言特性,用可运行示例说明机制,并划清迁移时最容易混淆的版本边界。 进阶 2分钟 · 来自 Java 17 新特性 jvm 审查 AI 代码 新题 审查生成的 CSV 行导入器 梳理 Java 17 源码级别可用的稳定语言特性,用可运行示例说明机制,并划清迁移时最容易混淆的版本边界。 高级 6分钟 · 来自 Java 17 新特性 jvm 找出 bug 新题 找出 Java 17 分支里的 bug 梳理 Java 17 源码级别可用的稳定语言特性,用可运行示例说明机制,并划清迁移时最容易混淆的版本边界。 进阶 4分钟 · 来自 Java 17 新特性 jvm 预测输出 新题 这段稳定的 Java 21 程序会输出什么? Java 21 的稳定语言与并发特性、预览边界,以及在 Java 25 运行时审查旧示例时必须识别的版本漂移。 入门 2分钟 · 来自 Java 21 特性 jvm 测验 新题 Java 21 有序集合 API 中的 `list.reversed()` 返回什么? Java 21 的稳定语言与并发特性、预览边界,以及在 Java 25 运行时审查旧示例时必须识别的版本漂移。 入门 1分钟 · 来自 Java 21 特性 jvm 审查 AI 代码 新题 审查生成的 Java 21 订单加载器 Java 21 的稳定语言与并发特性、预览边界,以及在 Java 25 运行时审查旧示例时必须识别的版本漂移。 高级 6分钟 · 来自 Java 21 特性 jvm 找出 bug 新题 找出虚拟线程任务里的 bug Java 21 的稳定语言与并发特性、预览边界,以及在 Java 25 运行时审查旧示例时必须识别的版本漂移。 进阶 4分钟 · 来自 Java 21 特性 jvm 测验 新题 哪个命令能够证明源码只使用稳定的 Java 21 语言与 Java SE API? Java 21 的稳定语言与并发特性、预览边界,以及在 Java 25 运行时审查旧示例时必须识别的版本漂移。 入门 1分钟 · 来自 Java 21 特性 jvm 测验 新题 服务为每个请求创建一个虚拟线程,但数据库只能接受 30 个并发查询。什么机制应限制数据库访问? Java 21 的稳定语言与并发特性、预览边界,以及在 Java 25 运行时审查旧示例时必须识别的版本漂移。 进阶 1分钟 · 来自 Java 21 特性 jvm 测验 新题 哪种设计最能保持账户余额永不为负的不变量? Java 对象把状态与行为组织在明确边界内;理解类不变量、动态分派、可替换性与组合,才能设计可靠的对象模型。 入门 1分钟 · 来自 面向对象编程 jvm 预测输出 新题 这段程序会输出什么? Java 对象把状态与行为组织在明确边界内;理解类不变量、动态分派、可替换性与组合,才能设计可靠的对象模型。 入门 2分钟 · 来自 面向对象编程 jvm 测验 新题 哪项陈述正确区分了引用标识与值相等? Java 对象把状态与行为组织在明确边界内;理解类不变量、动态分派、可替换性与组合,才能设计可靠的对象模型。 进阶 1分钟 · 来自 面向对象编程 jvm 审查 AI 代码 新题 审查生成的会员账户 Java 对象把状态与行为组织在明确边界内;理解类不变量、动态分派、可替换性与组合,才能设计可靠的对象模型。 高级 12分钟 · 来自 面向对象编程 jvm 找出 bug 新题 找出构造函数层次里的 bug Java 对象把状态与行为组织在明确边界内;理解类不变量、动态分派、可替换性与组合,才能设计可靠的对象模型。 进阶 4分钟 · 来自 面向对象编程 jvm 测验 新题 在紧凑构造器中重新绑定组件参数后会发生什么? 用记录类表达透明的数据载体,理解编译器派生的成员、紧凑构造器、浅层不可变性,以及记录模式的边界。 进阶 1分钟 · 来自 记录类 jvm 预测输出 新题 这段程序会输出什么? 用记录类表达透明的数据载体,理解编译器派生的成员、紧凑构造器、浅层不可变性,以及记录模式的边界。 入门 2分钟 · 来自 记录类 jvm 测验 新题 对记录使用模式 switch 且没有 `case null` 时,选择器为 null 会怎样? 用记录类表达透明的数据载体,理解编译器派生的成员、紧凑构造器、浅层不可变性,以及记录模式的边界。 进阶 1分钟 · 来自 记录类 jvm 审查 AI 代码 新题 审查生成的归档请求键 用记录类表达透明的数据载体,理解编译器派生的成员、紧凑构造器、浅层不可变性,以及记录模式的边界。 高级 6分钟 · 来自 记录类 jvm 找出 bug 新题 找出 HashMap 记录键里的 bug 用记录类表达透明的数据载体,理解编译器派生的成员、紧凑构造器、浅层不可变性,以及记录模式的边界。 进阶 4分钟 · 来自 记录类 jvm 测验 新题 某个类声明了 `void setLimit(int value)`。调用 `getMethod("setLimit", Integer.class)` 会怎样? 在 Java 25 中检查运行时类型、精确查找并调用成员,正确处理模块访问边界、异常包装与动态代理。 入门 1分钟 · 来自 反射 jvm 测验 新题 通过 `Method.invoke()` 调用的方法正常抛出的异常位于哪里? 在 Java 25 中检查运行时类型、精确查找并调用成员,正确处理模块访问边界、异常包装与动态代理。 进阶 1分钟 · 来自 反射 jvm 预测输出 新题 这段程序会输出什么? 在 Java 25 中检查运行时类型、精确查找并调用成员,正确处理模块访问边界、异常包装与动态代理。 入门 2分钟 · 来自 反射 jvm 审查 AI 代码 新题 审查生成的命令调度器 在 Java 25 中检查运行时类型、精确查找并调用成员,正确处理模块访问边界、异常包装与动态代理。 高级 6分钟 · 来自 反射 jvm 找出 bug 新题 找出反射方法查找里的 bug 在 Java 25 中检查运行时类型、精确查找并调用成员,正确处理模块访问边界、异常包装与动态代理。 进阶 4分钟 · 来自 反射 jvm 测验 新题 一个被密封类直接许可的普通子类可以使用哪些声明? 用 sealed、permits 与穷尽模式 switch 建模封闭的类型层次,并正确处理扩展边界、模块约束和版本演进。 入门 1分钟 · 来自 密封类 jvm 测验 新题 直接获准子类型可以声明在哪里? 用 sealed、permits 与穷尽模式 switch 建模封闭的类型层次,并正确处理扩展边界、模块约束和版本演进。 进阶 1分钟 · 来自 密封类 jvm 预测输出 新题 这段程序会输出什么? 用 sealed、permits 与穷尽模式 switch 建模封闭的类型层次,并正确处理扩展边界、模块约束和版本演进。 入门 2分钟 · 来自 密封类 jvm 审查 AI 代码 新题 审查生成的事件审计层次 用 sealed、permits 与穷尽模式 switch 建模封闭的类型层次,并正确处理扩展边界、模块约束和版本演进。 高级 6分钟 · 来自 密封类 jvm 找出 bug 新题 找出密封层次里的 bug 用 sealed、permits 与穷尽模式 switch 建模封闭的类型层次,并正确处理扩展边界、模块约束和版本演进。 进阶 4分钟 · 来自 密封类 jvm 测验 新题 持久化协议键必须使用与语言环境无关的大写规则。哪个表达式明确说明了该契约? Java String 的值语义、UTF-16 索引、字符串池、比较、Unicode 边界、字符编码与高效构建方法。 进阶 1分钟 · 来自 字符串 jvm 测验 新题 对于 String text = "A🚗",哪项说法正确? Java String 的值语义、UTF-16 索引、字符串池、比较、Unicode 边界、字符编码与高效构建方法。 入门 1分钟 · 来自 字符串 jvm 预测输出 新题 这段程序会输出什么? Java String 的值语义、UTF-16 索引、字符串池、比较、Unicode 边界、字符编码与高效构建方法。 入门 2分钟 · 来自 字符串 jvm 审查 AI 代码 新题 审查生成的 CSV 行格式化器 Java String 的值语义、UTF-16 索引、字符串池、比较、Unicode 边界、字符编码与高效构建方法。 高级 6分钟 · 来自 字符串 jvm 找出 bug 新题 找出字段解析器里的 bug Java String 的值语义、UTF-16 索引、字符串池、比较、Unicode 边界、字符编码与高效构建方法。 进阶 4分钟 · 来自 字符串 jvm 测验 新题 某个类以 `Integer decode(String)` 实现 `Decoder<Integer>`。为什么反射还可能看到 `Object decode(String)`? 理解 Java 泛型如何擦除为 JVM 可执行类型,以及类型令牌、桥接方法、堆污染和运行时类型检查的边界。 进阶 1分钟 · 来自 类型擦除 jvm 测验 新题 `T extends CharSequence & Comparable<T>` 中 `T` 的擦除类型是什么? 理解 Java 泛型如何擦除为 JVM 可执行类型,以及类型令牌、桥接方法、堆污染和运行时类型检查的边界。 进阶 1分钟 · 来自 类型擦除 jvm 预测输出 新题 这段程序会输出什么? 理解 Java 泛型如何擦除为 JVM 可执行类型,以及类型令牌、桥接方法、堆污染和运行时类型检查的边界。 入门 2分钟 · 来自 类型擦除 jvm 审查 AI 代码 新题 审查生成的解码适配器 理解 Java 泛型如何擦除为 JVM 可执行类型,以及类型令牌、桥接方法、堆污染和运行时类型检查的边界。 高级 6分钟 · 来自 类型擦除 jvm 找出 bug 新题 找出泛型列表函数里的 bug 理解 Java 泛型如何擦除为 JVM 可执行类型,以及类型令牌、桥接方法、堆污染和运行时类型检查的边界。 进阶 4分钟 · 来自 类型擦除 jvm 测验 新题 为什么私有的 `<T> void swap(List<T> values, ...)` 辅助方法能接收公开方法传入的 `List<?>`? Java 通配符描述泛型 API 的安全读写能力;用 PECS、捕获辅助方法和命名类型参数表达类型关系,避免未检查转换。 高级 1分钟 · 来自 通配符与 PECS jvm 预测输出 新题 这段程序会输出什么? Java 通配符描述泛型 API 的安全读写能力;用 PECS、捕获辅助方法和命名类型参数表达类型关系,避免未检查转换。 进阶 2分钟 · 来自 通配符与 PECS jvm 审查 AI 代码 新题 审查生成的通配符传输方法 Java 通配符描述泛型 API 的安全读写能力;用 PECS、捕获辅助方法和命名类型参数表达类型关系,避免未检查转换。 高级 8分钟 · 来自 通配符与 PECS jvm 找出 bug 新题 找出通配符复制方法里的 bug Java 通配符描述泛型 API 的安全读写能力;用 PECS、捕获辅助方法和命名类型参数表达类型关系,避免未检查转换。 进阶 4分钟 · 来自 通配符与 PECS jvm 测验 新题 给定 `List<? extends Number> values`,哪项操作一定能通过类型检查? Java 通配符描述泛型 API 的安全读写能力;用 PECS、捕获辅助方法和命名类型参数表达类型关系,避免未检查转换。 入门 1分钟 · 来自 通配符与 PECS