java教程技术文章
-
用 Java Files.find 组合普通文件、扩展名、大小和修改时间条件,掌握 maxDepth、BasicFileAttributes 以及 Stream的资源边界。 335 收藏 -
围绕Java BigDecimal的scale、RoundingMode、除法和UNNECESSARY检查,整理金额计算中可直接落地的舍入规则与边界处理方案。325 收藏 -
Java 自定义 JFR Event 的提交条件应分成 isEnabled、shouldCommit 和 commit 三层:先确认有活动录制,再在 end 后判断时长阈值,最后只提交值得保留的事件。325 收藏 -
讲清 Java HttpClient WebSocket 的 Listener 回调、request(1) 背压、文本分片与 sendClose、abort 关闭顺序,并给出可落地的异步监听器写法。315 收藏 -
从返回类型、嵌套 Future、Async 执行器和异常传播四个角度,说明 Java CompletableFuture 中 thenApply 与 thenCompose 的选择方法。306 收藏 -
Java Pattern 的 named group 不能在同一个正则中重复定义。本文区分重复定义、量词覆盖和 find 多次匹配三种情况,给出 group(String) 的读取方式、异常边界与完整示例。305 收藏 -
讲清 Java 模式匹配 switch 如何根据 sealed 层级判断穷尽性,并覆盖 null、default、泛型与 MatchException 的边界。301 收藏 -
JDK 25 的 import module 可一次引入模块已导出包中的 public 顶层类型,并遵循更具体导入优先、同名冲突显式消歧等规则。299 收藏 -
Java Path.normalize() 只整理 . 和 .. 等冗余名称,不检查文件是否存在;toRealPath() 会访问文件系统并返回已存在目标的绝对真实路径。本文用符号链接和选择清单说明两者边界。298 收藏 -
Java Stream 使用 groupingBy 分组后,可以把 mapping 放在下游收集器中提取每组指定字段;如果改用 toMap,还要明确重复键的合并策略,并检查并行收集的顺序与合并边界。296 收藏 -
Java Compact Object Headers 将 HotSpot 64 位对象头从传统的 mark word/class word 布局收敛到 64 位,本文解释压缩类指针、锁、GC 转发、JDK 25/27 启用方式与迁移边界。293 收藏 -
Java 模式匹配 switch 遇到 null 不会自动进入类型模式或 default,需要用 case null 显式表达空值策略;本文比较独立分支、与 default 合并的边界及测试清单。291 收藏 -
Java sealed class 或 sealed interface 的分支覆盖率异常,先区分 permits 类型边界与 if/switch 真实分支,再检查 JaCoCo prepare-agent、Surefire argLine、编译版本和测试路径。289 收藏 -
Java Selector 的 wakeup 是一次性选择唤醒信号。本文解释提前 wakeup 后 select 仍阻塞的常见时序,说明 selectNow 如何清除唤醒效果,并给出任务队列与事件循环的稳定写法。287 收藏 -
Java Jackson 反序列化 record 缺少 JSON 字段时,默认值应放在 canonical 构造器中,并明确处理 null、集合和基本类型边界。278 收藏