-
Java BigDecimal 的 scale 决定小数位表示,不等同于最终显示格式。本文用 setScale、RoundingMode 和 DecimalFormat 组合,让金额在计算、比较和展示时保持一致。
-
Java Spliterator 的 characteristics 写错会影响并行流的拆分、顺序和尺寸优化。本文按 ORDERED、SIZED、SUBSIZED、CONCURRENT 等特征解释风险,并给出自定义 Spliterator 的边界检查清单。
-
JDK 26 中启用 Shenandoah 不等于默认使用分代模式。本文说明 generational 与 satb 的显式选择、构建支持、启发式限制以及同条件对照和回退方法。
-
Java PosixFileAttributeView 的 setPermissions 只更新 POSIX 权限集合,不会重写文件内容。本文说明如何获取视图、复制并修改权限集合、处理不支持 POSIX 文件系统和 I/O 异常,并比较它与 Files.setPosixFilePermissions 的选择。
-
Java 管理外部子进程时,isAlive、onExit 和 exitValue 解决的是不同问题。本文用一个可复现的小任务拆解退出状态、异步等待、异常处理与句柄回收边界。
-
Java Collectors.filtering 适合放在 groupingBy 的下游,按条件过滤每个分组的元素,同时保留没有匹配值的分组键。本文用原创示例说明它与先调用 Stream.filter 的差异,以及如何选择下游 Collector。
-
Java Files.lines 返回的是持有文件资源的惰性 Stream,必须在 try-with-resources 中关闭;本文说明文件句柄为何持续占用、正确写法以及与 readAllLines、BufferedReader 的选择边界。
-
Java Matcher 可以通过 region(start, end) 把搜索限制在原字符串的半开区间内。本文用具体示例说明 find、matches、lookingAt 的范围变化,并解释 anchoring bounds、transparent bounds 与 lookaround 的边界差异。
-
通过共享计数器示例说明 ReentrantLock 公平锁的创建、成功获取后的释放,以及无参和限时 tryLock 的差别,并解释线程调度与吞吐取舍。
-
Java NIO 的 PathMatcher 可以由 FileSystem.getPathMatcher 创建,用 glob 规则匹配 Path 的字符串表示。本文从常见模式、目录遍历、路径层级和大小写边界出发,整理一套可直接放进文件筛选代码的写法。
-
Java StringCharacterIterator 可以用四参数构造器限定 String 的遍历范围。本文说明 begin、end、pos 的关系、end 不包含规则、DONE 结束判断、非法边界以及 char 下标和 Unicode 代码点的区别。
-
Java java.time.Duration.dividedBy 可以把耗时切成固定时间片,但整数除法、零值除数和超大纳秒数都可能改变结果。本文用限流窗口和任务分片示例说明返回值、异常边界与测试验收。
-
Java AtomicStampedReference 把对象引用和 int stamp 原子地绑定在一起。本文用 A→B→A 的场景说明只比较引用为什么会漏掉 ABA,再用 get 与 compareAndSet 同时校验引用身份和 stamp,给出更新版本号及使用边界。
-
Spring AI 2.0 的 ToolSearchToolCallingAdvisor 会按会话索引工具。本文从工具全量暴露的排查现场出发,说明 session ID、工具索引和 ChatClient 之间的边界,并给出 Java 配置示例与核对清单。
-
用 Java RandomGeneratorFactory.all() 按可拆分、可跳跃和可跃迁能力筛选随机算法,再按稳定规则创建生成器,厘清 getDefault() 与 stateBits 的边界。