java教程技术文章
-
文章 · java教程 | 3星期前 | 正则表达式 · 字符串处理 · Java教程 · 异常排查 · Java正则 Matcher.matches Matcher.find group 字符串校验
Java Matcher.matches 要求整个输入完全匹配,find 则负责在输入中寻找下一段命中内容,group 用来读取捕获组。本文从订单号整串校验和日志字段提取两个场景出发,拆开三者的边界,并给出可复现的检查代码。134 收藏 -
文章 · java教程 | 3星期前 | 锁 · Java · 线程池 · 异常处理 · 并发编程 · java 线程中断 lockInterruptibly reentrantlock InterruptedException 业务回滚
订单库存服务里,普通 lock() 可能让取消任务一直卡在锁外。本文用 ReentrantLock.lockInterruptibly() 建立可中断的等待边界,并说明 InterruptedException 后如何恢复中断标记、避免半完成业务和验证回滚结果。129 收藏 -
Spring 默认通过 AOP 代理处理 @Transactional,类内 this 自调用会绕过代理。本文用调用路径、拆分服务、代理引用和回滚验证说明如何定位并修复事务边界问题。129 收藏 -
Java JFR 降低诊断开销的关键不是关闭记录,而是先选对配置,再按事件设置 period、threshold 和 stackTrace,最后检查 JFR 文件是否包含足够证据。129 收藏 -
Java sealed interface 扩展失败时,先检查 permits 中的类型是否可访问且确实直接 implements 或 extends 该接口,再核对 final、sealed、non-sealed 续封修饰符,最后区分 named module 与 unnamed module 的包边界。本文用最小编译矩阵逐项定位这些错误。128 收藏 -
Java record 的字段是 final,但组件对象未必不可变。把带 List 等可变组件的 record 当作 HashMap 键时,组件内容变化会让 hashCode 改变,导致 get 或 containsKey 定位失效。128 收藏 -
Stream.toList() 从 Java 16 起返回不可修改的 List。本文说明它与 Collectors.toList()、toUnmodifiableList() 和 toCollection(ArrayList::new) 的差异,并给出 UnsupportedOperationException、Java 版本和 null 边界的排查方法。127 收藏 -
Java CompletableFuture 里的 exceptionally、handle 和 whenComplete 都能接住异常,但职责并不相同。本文用一条可运行的订单校验流水线说明三者的返回值、异常传播、旁路记录和质量门禁边界,帮助你把失败处理放在正确的位置。125 收藏 -
ClassValue 适合把与 Class 绑定的元数据懒加载并缓存起来。本文用一段可运行示例拆开 get、类型值计算、remove 的关系,并说明它与普通 Map 缓存、类卸载之间的边界。124 收藏 -
Java Stream.peek 是惰性中间操作,可能因没有终止操作、短路或实现优化而少执行。本文拆开触发边界,并给出把业务副作用移到可靠位置的重构方式。121 收藏 -
用 Java Locale.Builder 校验用户提交的 BCP 47 语言标签,区分 setLanguageTag 与 forLanguageTag 的异常和截断行为,并给出回退语言、展示语言与测试验收方案。120 收藏 -
Locale.forLanguageTag 会按 BCP 47 规则解析并规范化语言标签。本文从缓存键异常复盘出发,解释大小写、非法子标签、Unicode 扩展和 toString/toLanguageTag 的边界,并给出可验收的修复方式。119 收藏 -
Java Pattern.asMatchPredicate 可以把完整字符串匹配封装成 Predicate,再交给 Stream.anyMatch 短路查找。本文用订单号校验场景对比 asMatchPredicate 与 asPredicate,说明 null、空流和正则边界。118 收藏 -
分代 ZGC 是否适合,不能只看堆大小。本文从暂停目标、存活集、分配速率、并发回收余量和机器内存出发,给出 Xmx、SoftMaxHeapSize 与收集器选择的判断方法。118 收藏 -
文章 · java教程 | 5天前 | 虚拟线程 · Java StructuredTaskScope Java结构化并发 Java子任务取消 StructuredTaskScope结果汇总 Java虚拟线程并发
围绕 JDK 25/26 预览 API,讲清 Java StructuredTaskScope 如何组织子任务、在失败时取消未完成任务,并通过 join 与 Subtask.get 汇总结果,同时比较它与 CompletableFuture、ExecutorService 的适用边界。117 收藏