java教程技术文章
-
Java Gatherer 中只有在 integrator 不会因业务条件提前停止输入时,才适合用 Integrator.Greedy 表达契约。本文从返回值、下游信号、并行合并和边界场景说明判断方法。112 收藏 -
Java Files.probeContentType(Path) 用已安装的文件类型探测器和系统默认探测器尝试返回 MIME 类型;识别不到时返回 null,发生 I/O 问题时抛出 IOException。本文从最小写法、提供者边界和安全兜底三个方面说明如何正确使用。112 收藏 -
Java ModuleLayer 的隔离边界由 Configuration 可读图、父层关系、模块 exports/opens 和类加载器映射共同决定。本文用动态插件示例说明 OneLoader、ManyLoaders 与跨层接口设计。112 收藏 -
用 ValueSource、CsvSource 和 MethodSource 组织 JUnit 5 参数化测试输入,覆盖单值、表格与动态对象场景。110 收藏 -
Java switch 表达式要求覆盖所有可能输入;当枚举分支覆盖全部已知常量时,编译器会插入隐式 default。本文从多模块服务中的状态映射场景出发,说明箭头规则、块体 yield、显式 default、null 边界以及新增枚举常量后的维护取舍。110 收藏 -
Java 21 的 List.reversed() 返回反向有序视图,不是副本。本文用 ArrayList 和只读 List 对比说明 set、remove、addFirst 是否会写回原集合,以及什么时候必须显式复制。105 收藏 -
Java ScopedValue 的内层绑定只在嵌套动态作用域中遮蔽外层值,退出后自动恢复。本文用 where、run、get、isBound 和 orElse 说明嵌套读取、异常边界、线程继承与不可变上下文的使用方法。104 收藏 -
通过 LinkedHashMap、TreeMap 和下游 Collector,分别控制 Java Stream 分组后的键顺序与组内元素顺序。104 收藏 -
Java HttpClient 可以用 HttpRequest.BodyPublishers.ofFile(Path) 把本地文件作为请求体发送。本文说明文件请求体的构造关系、Content-Type 设置、异常处理和与响应文件下载的区别。103 收藏 -
Java Files.isSameFile 判断的是两个 Path 是否定位到同一个文件实体,而不是只比较路径字符串或文件内容。本文说明最小调用方式、相等 Path、不同文件系统 provider、符号链接和 IOException 的边界。103 收藏 -
用 sealed、permits 和模式匹配 switch 建立封闭的 Java 类型层次,逐项覆盖 record 分支,并说明 null、default、模式支配和类型层次变更后的重新编译边界。100 收藏 -
Java ClassValue 适合把按 Class 计算出的派生数据与类型关联起来。本文用一个类型元数据示例说明 get、computeValue、remove 的关系,解释并发计算、异常和何时不该使用 ClassValue。100 收藏