java教程技术文章
-
文章 · java教程 | 3星期前 | Java · 异常处理 · 资源管理 · java try-with-resources AutoCloseable close suppressed exception
Java try-with-resources 多个资源时按声明顺序初始化、按相反顺序关闭;本文说明初始化失败、close 异常和 suppressed exception 的判断方法。501 收藏 -
Java Stream teeing 会把同一批元素交给两个下游收集器,再合并为一个结果。本文用订单统计、Optional 空结果和 groupingBy 分组案例说明适用场景与边界。500 收藏 -
Java Stream 使用 groupingBy 分组时,默认结果 Map 的键顺序不能作为业务依据。通过 groupingBy 的 mapFactory 传入 LinkedHashMap::new,可以让分组键按首次出现顺序迭代,同时在有序输入和 toList 下保留每组元素顺序。本文还说明并行流、TreeMap 与排序的选择边界。498 收藏 -
Java 模块系统中,exports 解决模块间公开类型的普通访问,opens 解决运行时深反射。本文用 module-info.java 和命令行参数对比两者边界,并说明如何用 to 限定目标模块。496 收藏 -
用 Java Stream Gatherer 实现短时间事件窗口:区分固定数量与时间窗口,处理状态、边界、尾窗和不可变快照,并给出可复现的指标评估方法。495 收藏 -
用 Java Stream Gatherer.ofSequential 实现一个有状态的连续分组中间操作,讲清 initializer、integrator、finisher 的职责、尾组刷出和并行边界。494 收藏 -
文章 · java教程 | 3星期前 | 故障排查 · Java教程 · java SPI ServiceLoader ClassLoader module-info.java META-INF/services
Java ServiceLoader 找不到实现类时,优先检查 META-INF/services 文件是否进入 JAR、实现类全限定名是否正确,以及模块化项目的 uses/provides 声明。本文按 JAR、模块、ClassLoader 和初始化边界给出一套可执行排查清单。490 收藏 -
ServiceLoader找不到provider时,先核对META-INF/services文件或module-info.java声明,再检查类加载器、可见性和无参构造器。本文给出一套可复用的配置与排查方法。488 收藏 -
从大文件上传场景出发,讲清 Java HttpRequest BodyPublisher 的 ofFile、ofInputStream、fromPublisher 与 concat 用法,以及长度、重试、背压和异步边界。488 收藏 -
用 JDK 22 Linker API 调用 C 标准库 strlen,讲清符号查找、函数签名映射、Arena 生命周期、本地访问授权与生产边界。486 收藏 -
从线程模型、下游资源限流与容量估算三个层面,说明 Java 25 虚拟线程如何承载阻塞 I/O,并避免把大量线程误当成无限容量。484 收藏 -
Java HttpClient 的 sendAsync 收到 404 时,future 通常会正常完成,因为 404 是合法 HTTP 响应而非传输异常。本文用代码区分状态码、超时、连接失败和响应体处理错误。483 收藏 -
文章 · java教程 | 21小时前 | 线程池 · 异常处理 · 并发编程 · Java教程 · CompletableFuture · 异步任务 completablefuture allOf Handle 结果汇总 CompletionException
本文解释 CompletableFuture.allOf 为什么只返回 Void、如何在完成屏障后汇总子任务结果,并通过 handle 将任务名、成功值和根异常保存到 TaskResult,解决多任务失败归属不清的问题。482 收藏 -
Java NIO 中 ByteBuffer.flip() 会把当前 position 变成 limit,再把 position 归零,适合把写入态切换为读取态。本文用状态表、代码和边界示意说明 flip 怎么配置,以及如何排查读不到数据、下溢和多轮读写问题。475 收藏 -
Java 虚拟线程可以承载大量并发任务,但外部服务仍有容量上限。本文用 Semaphore 只限制下游调用区,并说明中断、等待超时、finally 释放以及连接池重复限流的边界。468 收藏