java教程技术文章
-
Java computeIfAbsent计算回调不应更新同一个Map。结合JDK25文档和单线程依赖计算示例,区分容器重入检测与业务依赖环,说明完成缓存、失败清理及并发改造边界。207 收藏 -
对比 Java Stream Gatherer 与 Collector 的操作位置、状态函数、输出形态、短路和并行边界,并用固定窗口与终态汇总示例给出选型方法。205 收藏 -
Java MultiValuedMap的get返回关联集合视图,修改会作用于原映射。通过标签编辑示例区分实时视图、草稿副本、只读快照和显式提交的边界。205 收藏 -
Java ProcessHandle.Info 可以读取进程的可执行命令、参数、命令行、启动时间、用户和 CPU 时间,但这些字段都可能因平台和权限返回空 Optional。本文用一段可复用的诊断代码解释字段差异和安全处理方式。205 收藏 -
文章 · java教程 | 2星期前 | 字符串 · Java · java stringutils defaultIfBlank defaultIfEmpty Apache Commons Lang
Java StringUtils.defaultIfBlank 会把 null、空串和仅空白视为需要回退;defaultIfEmpty 只处理 null 与空串。本文用边界表、代码和迁移清单说明如何选择。201 收藏 -
分代 ZGC 没有一个可以单独代表晋升压力的万能数字。本文用 GC 日志、JFR 和业务基线,判断老年代存活量、回收频率与堆余量是否共同恶化,并给出调参和排查边界。200 收藏 -
Java 24 的 Class-File API 可通过 CodeTransform 处理方法 Code 属性,再用 ClassTransform.transformingMethodBodies 提升到整类转换。本文以删除 nop 指令为例,说明模型层级、完整代码、按方法过滤和属性边界。199 收藏 -
文章 · java教程 | 2星期前 | Java · 异常处理 · AutoCloseable Java try-with-resources suppressed exception 关闭顺序 getSuppressed
Java try-with-resources 会按资源初始化的反序关闭。try 主体先失败时,关闭异常进入 suppressed;主体正常时,第一个关闭异常成为主异常。本文用多资源示例梳理完整判断方法。197 收藏 -
Java Class-File API 可以直接读取 .class 文件模型,不必通过 Class.forName 加载目标类。本文从 ClassModel、MethodModel 到 CodeModel,演示如何按方法名枚举方法指令,并说明无方法体、惰性解析、版本兼容和 CodeElement 类型筛选边界。193 收藏 -
Java ProcessBuilder 启动外部命令后,先用 start 得到 Process,再用 waitFor 等待结束并读取退出码;同时根据是否需要区分 stdout 与 stderr,选择双流读取或 redirectErrorStream(true)。192 收藏 -
Java 正则替换时,美元符号和反斜杠可能被当成 replacement 语法。本文纠正 Pattern.quoteReplacement 的类名误解,说明 Matcher.quoteReplacement 的用法、边界与最小示例。191 收藏 -
Java ReentrantLock 的 tryLock 超时调用会在等待结束时返回 false,被中断时抛出 InterruptedException。本文用一套可回滚的 try/finally 写法区分三条路径,并说明何时释放锁、何时清理资源以及公平锁的边界。190 收藏 -
TreeSet 不是用 equals 直接判断重复,而是沿着 compareTo 或 Comparator.compare 的结果定位元素。本文用一个只比较年龄的场景解释 compare 返回 0 为什么会让第二个对象无法加入,并给出主键加唯一标识的稳定改法与迁移检查清单。190 收藏 -
JDK 26 使用 Java 24 引入的 Stream Gatherers,把窗口、扫描、映射和自定义状态组合进同一条流管道。本文按输入输出、andThen、生命周期、并行与落地边界说明怎样选择组合方式。190 收藏 -
Java 的 Pattern Matching switch 可以沿着 sealed 类型层级做穷尽匹配。本文用订单事件模型拆开直接子类型、叶子类型、default、null 和新增实现后的编译影响。189 收藏