java教程技术文章
-
围绕 Java Thread.Builder.OfVirtual 讲清 uncaughtExceptionHandler 的绑定位置、start/unstarted/factory 的继承边界,以及虚拟线程未捕获异常的日志兜底方式。139 收藏 -
在 Java named module 中,ResourceBundle.Control 不是推荐的扩展入口。本文用 ResourceBundleProvider、ServiceLoader 和 module-info.java 搭出多语言资源包服务,说明服务命名、Locale 分发、模块声明与排障边界。139 收藏 -
用一个批次编号生成场景拆开 Java IntStream.iterate 的三参数重载,说明 seed 是否入流、hasNext 何时判断、next 是否会多执行,以及 limit 的边界。138 收藏 -
Java Optional 的 orElse 会先求值默认参数,orElseGet 则只在 Optional 为空时调用 Supplier。通过最小实验、参数求值规则和工程边界,快速判断两种写法。138 收藏 -
Java ZIP 文件系统通过 jar URI 和 create=true 创建不存在的 ZIP 归档。本文给出可直接改造的 NIO 示例,并说明只读、追加、目录创建和关闭时机。137 收藏 -
Java record 的 List 仍能修改,是因为 final 只固定集合引用而不冻结集合内容。本文用引用链说明原因,并比较直接保存、只读视图与 List.copyOf 快照的适用场景。136 收藏 -
Java ExecutorService 关闭时,先用 shutdown 拒绝新任务,再用 awaitTermination 等待;超时后以 shutdownNow 兜底,并正确处理中断和未启动任务。136 收藏 -
文章 · java教程 | 2个月前 | 正则表达式 · 字符串处理 · Java教程 · 异常排查 · Java正则 Matcher.matches Matcher.find group 字符串校验
Java Matcher.matches 要求整个输入完全匹配,find 则负责在输入中寻找下一段命中内容,group 用来读取捕获组。本文从订单号整串校验和日志字段提取两个场景出发,拆开三者的边界,并给出可复现的检查代码。134 收藏 -
JDK 26 的 JEP 516 让 AOT 缓存中的 Java 对象可以用与 GC 无关的格式顺序加载。本文按训练、组装、生产三个阶段说明怎样减少启动与预热工作,以及缓存失配时应该重建的边界。134 收藏 -
Java HttpHeaders.allValues 返回同名响应头的全部值,缺失时得到空列表;本文对比 firstValue、处理不可修改列表,并给出多值头归档写法。134 收藏 -
Java Semaphore 用许可数限制同时进入资源区的任务数量。本文围绕 acquire、release 与 tryAcquire 超时,说明数据库连接、文件句柄或外部 API 配额的并发控制写法,并解释公平性选择与许可泄漏边界。133 收藏 -
Java MemorySegment 的跨线程访问范围由关联 Arena 决定:Arena.ofConfined 只允许所有者线程访问,Arena.ofShared 允许任意线程访问。本文给出 JDK 22 后的最小写法、切片边界和迁移检查。132 收藏 -
文章 · java教程 | 2个月前 | 锁 · Java · 线程池 · 异常处理 · 并发编程 · java 线程中断 lockInterruptibly reentrantlock InterruptedException 业务回滚
订单库存服务里,普通 lock() 可能让取消任务一直卡在锁外。本文用 ReentrantLock.lockInterruptibly() 建立可中断的等待边界,并说明 InterruptedException 后如何恢复中断标记、避免半完成业务和验证回滚结果。129 收藏 -
Spring 默认通过 AOP 代理处理 @Transactional,类内 this 自调用会绕过代理。本文用调用路径、拆分服务、代理引用和回滚验证说明如何定位并修复事务边界问题。129 收藏 -
Java JFR 降低诊断开销的关键不是关闭记录,而是先选对配置,再按事件设置 period、threshold 和 stackTrace,最后检查 JFR 文件是否包含足够证据。129 收藏