java教程技术文章
-
文章 · java教程 | 1星期前 | Java · 集合 · 资源管理 · Stream · Java教程 · supplier Java Stream Files.lines Stream生命周期 重复遍历
Java Stream 不是可反复读取的集合视图:一次终止操作后,继续使用同一个 Stream 可能抛出 IllegalStateException。本文从昂贵数据源的生命周期出发,说明何时保存集合、何时保存 Supplier>,并给出 Files.lines 的资源关闭写法。 146 收藏 -
ExecutorCompletionService 把任务提交和结果消费分开,适合多个 Callable 并发执行后按实际完成顺序取结果。本文用最小 Java 示例说明 take、poll、Future.get 的配合方式,以及异常、超时和线程池关闭边界。146 收藏 -
Java KeyStore 可以同时保存私钥、对称密钥和受信任证书。本文用 isKeyEntry、isCertificateEntry 和 getEntry 区分三类 Entry,并说明各自应该读取的内容与保护参数边界。144 收藏 -
Java 虚拟线程迁移可保留同步阻塞代码,但要把任务线程、入口准入和下游并发限制分开。本文给出执行器接入片段与异常、资源和关闭边界。141 收藏 -
用一个小型任务协调器讲清 Java 虚拟线程执行器的创建边界、正常关闭、超时收敛和 Future 取消,帮助区分执行器生命周期与单任务中断。140 收藏 -
Java Matcher 判断可选分组时,要在成功匹配后区分 null、空字符串和非空内容。用备注行解析器说明命名捕获组、位置判断、状态误用和业务集成。140 收藏 -
围绕 Java Thread.Builder.OfVirtual 讲清 uncaughtExceptionHandler 的绑定位置、start/unstarted/factory 的继承边界,以及虚拟线程未捕获异常的日志兜底方式。139 收藏 -
JDK 26 的 JEP 516 让 AOT 缓存中的 Java 对象可以用与 GC 无关的格式顺序加载。本文按训练、组装、生产三个阶段说明怎样减少启动与预热工作,以及缓存失配时应该重建的边界。134 收藏 -
Java Semaphore 用许可数限制同时进入资源区的任务数量。本文围绕 acquire、release 与 tryAcquire 超时,说明数据库连接、文件句柄或外部 API 配额的并发控制写法,并解释公平性选择与许可泄漏边界。133 收藏 -
Java MemorySegment 的跨线程访问范围由关联 Arena 决定:Arena.ofConfined 只允许所有者线程访问,Arena.ofShared 允许任意线程访问。本文给出 JDK 22 后的最小写法、切片边界和迁移检查。132 收藏 -
Java Cleaner 适合为资源释放提供 GC 兜底,但清理动作不能持有被注册对象本身。本文用静态状态类、Cleanable 和 AutoCloseable 组织一份可落地的写法,并说明显式 clean、重复清理和阻塞动作的边界。128 收藏 -
通过自动表头映射按名称读取Java CSV字段,比较手动与位置绑定,并说明逐条导入、重复表头、空值、资源关闭和事务边界。127 收藏 -
用 Java DateTimeFormatterBuilder.appendFraction 控制时间小数位,掌握 minWidth、maxWidth、decimalPoint 的组合、截断规则与严格解析边界。127 收藏 -
文章 · java教程 | 2星期前 | spring · Spring Boot · 事务管理 · Java教程 · REQUIRES_NEW Spring事务事件 TransactionalEventListener AFTER_COMMIT Spring事件
用 @TransactionalEventListener 把业务事件绑定到成功提交阶段,并讲清提交后落库、异步监听、无事务调用、幂等与 Outbox 的边界。126 收藏 -
Jackson 多态 JSON 需要稳定类型字段和明确子类型映射。本文用通知对象的往返示例说明 Id.NAME 的用法,区分缺失类型、未知类型、集合泛型和旧数据迁移边界。126 收藏