java教程技术文章
-
对比 Java Stream Gatherer 与 Collector 的操作位置、状态函数、输出形态、短路和并行边界,并用固定窗口与终态汇总示例给出选型方法。205 收藏 -
文章 · java教程 | 3星期前 | Java · 集合 · Stream · map 重复键 Collectors.groupingBy Java Collectors.toMap Stream收集
Java Stream 收集数据时遇到重复键,不要直接改成覆盖写法。本文用 groupingBy 保留同键的多条对象,再用 toMap 合并函数处理只需要一个值的场景,并说明顺序、空值与并行流边界。203 收藏 -
分代 ZGC 没有一个可以单独代表晋升压力的万能数字。本文用 GC 日志、JFR 和业务基线,判断老年代存活量、回收频率与堆余量是否共同恶化,并给出调参和排查边界。200 收藏 -
解释 Java Pattern.DOTALL 为什么让点号匹配换行,区分 DOTALL、MULTILINE 与 UNIX_LINES 的作用,并用 Java 示例说明如何限定跨行匹配范围、避免贪婪量词吞掉后续内容。199 收藏 -
介绍 Java ScopedValue 在方法调用链中传递请求上下文的写法,解释作用域绑定、嵌套重绑定、ThreadLocal 差异和结构化子任务继承。199 收藏 -
Java 24 的 Class-File API 可通过 CodeTransform 处理方法 Code 属性,再用 ClassTransform.transformingMethodBodies 提升到整类转换。本文以删除 nop 指令为例,说明模型层级、完整代码、按方法过滤和属性边界。199 收藏 -
Java 21 模式 switch 遇到 null 时,按 JDK 编译版本、case null 规则、模式支配和输入矩阵逐层排查,避免把 Object 模式或 default 误当成空值兜底。198 收藏 -
Java record pattern 解构嵌套 record 时,外层嵌套对象为 null 会匹配失败,而已存在 record 的字段值仍可为空。本文用地址解析小项目拆开三层边界,并给出 Java 21 的安全判断写法。190 收藏 -
Java ReentrantLock 的 tryLock 超时调用会在等待结束时返回 false,被中断时抛出 InterruptedException。本文用一套可回滚的 try/finally 写法区分三条路径,并说明何时释放锁、何时清理资源以及公平锁的边界。190 收藏 -
Java Record 的参数校验应集中放在规范构造器中:用 compact constructor 处理清洗、非空、格式和范围约束,重载构造器统一委托,避免对象从旁路入口创建。189 收藏 -
解释 Java Map.computeIfAbsent 递归更新同一个键为何失败,区分 HashMap 与 ConcurrentHashMap 的异常边界,并用递归返回值和外部缓存改写回调内更新。184 收藏 -
Java G1 日志出现 humongous allocation 时,应先确认实际 Region 大小,再用半个 Region 判断阈值,并结合 Humongous regions、Old regions、并发标记和 Full GC 证据区分偶发大对象与持续空间压力。184 收藏 -
JDK 21 的 SequencedCollection 为有遇见顺序的集合统一了首尾访问和反向视图。本文从迁移回归入手,说明类型收窄、空集合异常、不可修改实现、reversed 视图及公共 API 兼容处理。183 收藏 -
用 Java sealed interface 和 record 固定支付状态集合,结合 Java 21+ 的 switch 表达式减少非法状态组合,并在新增状态时获得编译期提醒。182 收藏 -
Java 大文件不要先 readAllBytes 再 encodeToString。用 Base64.Encoder.wrap(OutputStream) 把编码器接到输出流上,输入端分块读取,关闭包装流时完成尾部补位,并根据协议选择基本、URL 或无补位编码。182 收藏