-
Properties.load(Reader) 使用调用方已经解码好的字符,load(InputStream) 则按 ISO-8859-1 解释每个字节。读取 UTF-8 中文配置时,应使用 InputStreamReader 显式指定 UTF-8,并注意 Unicode 转义、store 配对和流关闭责任。
-
DoubleSummaryStatistics 记录 NaN 后,count 仍会计入该值,而 min、max、sum 和 average 会受到 NaN 传播影响。本文说明如何识别 NaN、选择过滤策略,并处理空对象与 combine 边界。
-
用combine把分片统计累积到独立总对象,说明平均值权重、重复计入、并发修改、空片与浮点误差,并提供完整Java示例。
-
Java String.indent(int) 可以逐行增加或移除多行文本的前导空白,并把结果行结束符统一为 LF。本文说明 n 的正负语义、制表符计数、CRLF 归一化,以及它与文本块 stripIndent 的使用边界。
-
用 DateTimeFormatterBuilder 分别构造多种日期格式,按具体格式优先严格解析,并处理 LocalDate、LocalDateTime 与非法输入边界。
-
LineNumberReader设置行号只修改计数,不会移动读取位置。通过独立Java示例区分编号和定位,说明顺序读取目标行的方法、调用数量与换行、EOF、mark/reset边界。
-
Java Files.isSameFile 判断的是两个 Path 是否定位到同一个文件实体,而不是只比较路径字符串或文件内容。本文说明最小调用方式、相等 Path、不同文件系统 provider、符号链接和 IOException 的边界。
-
Java CompletableFuture.orTimeout 可以在指定时间内未完成时让同一个 CompletableFuture 以 TimeoutException 异常完成。本文给出最小写法,解释 timeout、TimeUnit、join 与异常处理的边界,并说明它不会自动停止底层任务。
-
Java HttpClient 的 BodyHandlers.ofLines() 会把响应正文转换为按行消费的 Stream。本文从最小 GET 示例开始,说明响应状态、字符集、换行、提前结束和资源关闭边界,并比较它与 ofString、ofInputStream 的适用场景。
-
Java PushbackReader 可用 unread 保留多读的非数字字符。本文通过数字前缀示例说明共享包装对象、EOF 判断、单字符容量、异常位置与调用方关闭责任。
-
用 StringJoiner.setEmptyValue 设置未添加元素时的默认输出,并区分真正空状态、空字符串元素和 null 元素的结果。
-
Java Files.probeContentType(Path) 用已安装的文件类型探测器和系统默认探测器尝试返回 MIME 类型;识别不到时返回 null,发生 I/O 问题时抛出 IOException。本文从最小写法、提供者边界和安全兜底三个方面说明如何正确使用。
-
Java Virtual Threads 适合承载大量阻塞 I/O 任务,但不应把连接、客户端和可变缓存都塞进 ThreadLocal。本文按请求元数据、只读上下文、任务资源和外部并发四条边界,说明显式参数、ScopedValue、连接池与 Semaphore 的选择方法。
-
Java switch 表达式要求覆盖所有可能输入;当枚举分支覆盖全部已知常量时,编译器会插入隐式 default。本文从多模块服务中的状态映射场景出发,说明箭头规则、块体 yield、显式 default、null 边界以及新增枚举常量后的维护取舍。
-
Java Pattern.splitAsStream 会按照正则匹配到的分隔符创建有序 Stream,末尾空字符串不会进入流;本文用配置文本和日志字段拆分场景说明调用方式、空值边界、可变输入约束,以及它和 split、splitWithDelimiters 的选择差异。