-
Java String.splitWithDelimiters 会把文本片段和匹配到的分隔符交替放进结果数组。掌握正则、limit 和尾部空字符串规则,就能避免 split 后再猜分隔符位置。
-
Java TextStyle 为月份提供普通形式与独立形式。本文说明 FULL 与 FULL_STANDALONE、MMMM 与 LLLL 的区别,给出多语言日历示例,并解释复用标签时为何要区分语言、用途和文本长度。
-
DecimalFormat.parse 成功并不代表输入字符串全部被消费。本文用 ParsePosition 解释前缀解析的原因,并给出 index、errorIndex 与 strict 模式结合的完整数字字段判断方法。
-
介绍 Java 21 及以上如何在 switch 中使用 record pattern 直接绑定 record 分量,并处理嵌套结构、when 守卫、null 与穷尽性。
-
Java CollationKey 适合在同一批字符串需要反复排序时缓存比较键。本文给出绑定原文、固定 Collator 规则和缓存失效边界的写法,并说明何时直接 compare 更快。
-
Java ZoneOffsetTransition 用来描述时区偏移发生不连续变化的瞬间。本文从 ZoneRules.getTransition 出发,说明怎样区分夏令时前进造成的不存在时间与回拨造成的重复时间,并给出业务解析时的判断边界。
-
Java Properties.storeToXML 默认使用 UTF-8,适合保存中文、日文等非拉丁字符。本文给出默认重载与 Charset 重载的写法,说明如何用 loadFromXML 配对读取,并标出 XML 格式、字符串键值和流关闭的边界。
-
使用try-with-resources关闭Files.walk返回的Stream,讲解findFirst短路与异常路径的资源释放,区分IOException和UncheckedIOException,并说明返回Path、集合或Stream时的所有权。
-
ByteBuffer flip 与 rewind 对比:理解 position、limit 和 capacity,用写后读取与从头重读示例说明选择规则,避免重复 flip 和误读容量尾部。
-
Java Pattern 适合长期复用,Matcher 则携带可变匹配状态。本文比较一次性调用、顺序批处理和 ThreadLocal 三种方式,说明如何用 reset 复用 Matcher,同时避开多线程共享和输入生命周期问题。
-
Java HttpClient 的 HTTP/2 连接复用重点在于长期复用同一个 HttpClient,而不是每次请求新建客户端。本文说明 HTTP_2 协议偏好、HttpResponse.version() 实际结果、HTTP/2 多路复用,以及 connectionPoolSize 与 keepalive.timeout.h2 的配置边界。
-
Java 模块系统没有单独的只读导出关键字。本文用 exports 暴露稳定 API 包,把实现包留在模块内部,并说明限定导出、public、子包与 opens 的边界。
-
Java Files.move 的 ATOMIC_MOVE 与 REPLACE_EXISTING 解决的是不同问题:前者约束原子移动,后者允许覆盖已存在目标。本文按 FileStore、目标状态和原子性要求拆解选择方式,并给出 AtomicMoveNotSupportedException 的处理边界。
-
使用 Java Flight Recorder 的 RecordingFile.write 按事件类型筛选已有 recording.jfr,导出新的 JFR 文件;本文说明事件名称、多个事件白名单、类型清单和三种读取方式的选择边界。
-
Java CompletableFuture 合并两个异步结果时,优先用 thenCombine 让两个阶段正常完成后生成新值;需要切换线程池时使用 thenCombineAsync,并区分无返回值组合、allOf、异常传播和 join 的使用边界。