-
用 Java Collator 的 Locale、strength 和 decomposition 控制重音与大小写差异,并说明 CollationKey 在重复排序中的适用边界。
-
Java Collator 适合按 Locale 处理自然语言排序;当同一批字符串需要被反复比较时,可先用同一个 Collator 生成 CollationKey,再通过 compareTo 排序,避免每次比较都重新分析原字符串。
-
Java char 下标按 UTF-16 单元计数,字符边界可覆盖代理对与组合序列。通过昵称前缀示例说明 BreakIterator、码点计数和 substring 偏移的区别及版本边界。
-
Java BreakIterator 的单词模式返回的是一组边界,边界之间既可能是单词,也可能是空白或标点。本文用字符属性过滤真实词片段,并说明 Locale、字符索引与适用边界。
-
JVM Class Data Sharing(CDS)可以把批处理实际加载的类保存为归档,在后续启动时减少类加载和启动准备开销。本文给出静态与动态归档命令,说明 JDK、类路径和回退边界,并区分 CDS 与业务对象分配优化。
-
Java 21 的 sealed 类型可以把类型层次固定下来,配合模式匹配 switch 覆盖全部 permitted 子类型。本文用一个可复用的最小示例说明怎样让新增子类型在重新编译时暴露,并说明 default、non-sealed、null 与旧二进制的边界。
-
本文用 JDK 21 命令行演示 AppCDS 的最小闭环:先记录应用实际加载的类,再用 -Xshare:dump 生成 .jsa,最后通过 SharedArchiveFile 启动并处理 JDK、classpath 和参数变化造成的归档失效。
-
Java record 可通过 getRecordComponents 保持组件声明顺序。本文实现类型级名称与访问器读取计划,批量直接写入输出端,减少逐行容器和重复元数据构建,并说明访问权限、装箱及格式兼容边界。
-
Java record 反射排查:先用 isRecord 判断类型,再按 record 头部声明顺序读取 RecordComponent,最后通过 accessor 读取实例值,区分 null、空数组和字段顺序不保证。
-
用 Class.isRecord 和 getRecordComponents 读取 Java record 组件,并通过 RecordComponent 的名称、类型和访问器保留 record header 顺序。本文给出可复用的实例读取方法,并说明普通类、空 record、调用异常与缓存边界。
-
Java 虚拟线程的同步块 pinning 要按 JDK 版本判断,JDK 24 已改变监视器相关限制。本文通过短临界区与批次私有缓冲示例,说明锁竞争、额外分配及资源所有权的处理方法。
-
Java 虚拟线程在 synchronized 同步块中执行阻塞操作时可能发生 pinned,让载体线程无法及时复用。本文按现象、证据、修复和反向验证排查,说明何时保留 synchronized,何时考虑 ReentrantLock。
-
Java 虚拟线程在 JDK 21 及更早版本中,如果在 synchronized 持锁期间发生阻塞,可能把 carrier 一起占住。本文用最小示例解释 pinned 的成因、JDK 24+ 的版本变化、ReentrantLock 改写边界,以及 JFR 和 jcmd 的观察方法。
-
用 Java Phaser 管理动态参与者,讲清 register、阶段到达等待和 arriveAndDeregister 的配合方式,以及阶段不推进时的排查边界。
-
CompletableFuture 超时备用值不负责终止底层任务。本文区分正常空值、异常与等待超时,通过独立副本示例说明响应降级,并给出客户端期限、资源释放及监控处理方法。