-
BorderLayout(边界布局管理器)是一种较为复杂的布局方式,它将容器划分为五个区域,分别是页头(PAGE_START)、页尾(PAGE_END)、行首(LINE_START)、行尾(LINE_END)、中部(CENTER)。组件可以被放置在这五个区域中的任意一个位置。BorderLayout
-
jdeps 读取的是 class 文件中的静态依赖,反射字符串、外部配置和插件目录可能不会出现在结果里。本文用最小示例说明边界,并给出参数、路径和运行时清单的复核方法。
-
Java 虚拟线程适合承载阻塞 IO,但不应拿固定线程池限制资源并发。本文用 Semaphore 配合虚拟线程执行器,说明如何按连接池、上游限额和 CPU 预算设置可观察的并发边界。
-
Java CompletableFuture 的 cancel() 只能表达取消状态,无法携带业务原因。本文比较 cancel、带原因的异常完成和显式结果对象,给出跨 thenCompose 阶段传递取消码的写法。
-
Java Apache Commons IO 的 Tailer 用 end 参数或 Builder 的 setTailFromEnd 控制起始位置:false 会从文件开头读取,true 会跳到当前末尾等待新增内容。本文结合日志补读、实时监听和文件轮转说明两者区别。
-
配置热加载不能只比较 lastModifiedTime。本文用 Java Files.readAttributes 读取 BasicFileAttributes,结合 fileKey、文件大小和时间戳,判断原文件被覆盖、替换或仅内容变化时应该怎么处理。
-
Java 堆稳定而进程 RSS 持续上涨时,可用 NMT 建立基线并读取 summary.diff,按 committed 分类增量判断 Class、Thread、Code、GC/Internal 等来源;若 NMT 总量稳定而 RSS 继续增长,则应转向 JNI、第三方库和系统级内存证据。
-
Java 模块化插件不应只把多个 JAR 扔进同一个类路径。本文把共享 SPI 放在父 ModuleLayer,为每个插件目录建立独立 Configuration 与 ClassLoader,再用 ServiceLoader 按层发现实现,并补齐失败回滚、资源释放和卸载边界。
-
用 Java HttpClient 的 sendAsync、响应体处理器和定时取消组合,处理响应体迟迟不完成的超时、资源收束与异常边界。
-
Java 21 可根据 sealed 类型的允许子类型检查 switch 是否穷尽。本文用订单结果模型说明覆盖规则、为何省略 default,以及 null、守卫、泛型与版本演进边界。
-
PropertyChangeSupport 的 setter 已执行但监听器未回调,常见原因是旧值和新值都非 null 且按 equals 相等。本文拆解对象、null、基本类型和 indexed 重载的通知边界,并给出动作事件与最小测试的修复思路。
-
Java 的默认 Locale 会影响未显式指定区域设置的数字、日期和字符串格式化。本文说明 FORMAT Locale 的作用、常见不稳定场景,以及如何用显式 Locale 区分展示文本和机器协议。
-
把 stream() 改成 parallelStream() 之前,先判断数据规模与单元素成本、Spliterator 拆分质量、状态型操作、顺序约束、共享副作用和归约契约。本文给出六道筛选、代码改造方法和同输入对照清单,避免并行后更慢或结果不稳定。
-
用 Java NIO 扫描配置目录时,PathMatcher 的 glob 规则要和 Path 的相对层级保持一致。本文用 Files.walk、PathMatcher 和小型验收程序说明通配符、路径归一化、空匹配及资源关闭边界。
-
Java Stream 中直接修改外部 List、Map 或计数器,会让并行执行出现数据竞争、结果不稳定或锁竞争。本文说明如何识别共享可变状态,并用 toList、groupingBy、reduce 和 Collector 改写。