java教程技术文章
-
文章 · java教程 | 6天前 | Java · 异步编程 · 性能排查 · java httpclient completablefuture 异步超时 HttpTimeoutException sendAsync
Java HttpClient 的 connectTimeout 只约束建立新连接,HttpRequest.timeout 才是请求级截止时间。本文用 sendAsync 示例区分两类超时,说明 CompletableFuture 的异常分类、取消边界和 p95/p99 指标记录方式。485 收藏 -
Java virtual threads 可以让每个请求保持简单的阻塞式写法,但 newVirtualThreadPerTaskExecutor 不会自动限制外部服务的并发量。本文用 Semaphore 包住真正的外部调用,说明许可归还、中断处理、超时和连接池边界。485 收藏 -
从线程模型、下游资源限流与容量估算三个层面,说明 Java 25 虚拟线程如何承载阻塞 I/O,并避免把大量线程误当成无限容量。484 收藏 -
围绕 JDK 26 AOT 启动问题,区分缓存失效与业务启动失败,提供独立训练示例、自动降级及严格模式命令,并说明制品对应、训练副作用、重建和回退的处理边界。484 收藏 -
Java 24 及更高版本可以用 Stream.gather 和 Gatherers.windowFixed 把连续元素聚成窗口,再映射成业务摘要。本文说明固定窗口、滑动窗口、尾窗口、不可修改结果和大窗口内存边界。484 收藏 -
Java record 序列化不是普通 Serializable 类的缩小版。本文说明组件如何进入序列化流、canonical constructor 如何参与反序列化,以及新增删除组件、record 与普通类互转时如何设计兼容边界。483 收藏 -
文章 · java教程 | 3星期前 | 线程池 · 异常处理 · 并发编程 · Java教程 · CompletableFuture · 异步任务 completablefuture allOf Handle 结果汇总 CompletionException
本文解释 CompletableFuture.allOf 为什么只返回 Void、如何在完成屏障后汇总子任务结果,并通过 handle 将任务名、成功值和根异常保存到 TaskResult,解决多任务失败归属不清的问题。482 收藏 -
通过 Thread.ofVirtual 构建有限阻塞任务,讲清 start 与 unstarted、join 等待、失败记录及 interrupt 的协作取消边界,避免将线程终止误判为业务成功。481 收藏 -
区分 Java 模块系统中 exports 与 opens 的职责,结合 module-info.java、setAccessible、trySetAccessible 和 Module API,给出框架反射排障与最小开放配置方法。478 收藏 -
文章 · java教程 | 1星期前 | JSON · Java · 序列化 · 类型系统 · java 反序列化 jackson sealed interface 多态JSON JsonTypeInfo
Java 多态 JSON 映射的关键不是把 JSON 直接绑定到任意类,而是在 sealed 类型集合、kind 判别字段和 Jackson 反序列化策略之间划清边界。本文给出从旧模型迁移到显式逻辑类型名的做法,并说明未知类型、缺失字段和新增子类型如何回归。478 收藏 -
Java record 可以通过规范化构造器统一完成参数校验、空白清理、大小写转换和范围规范化。本文说明紧凑构造器与显式构造器的写法,并解释替代构造器为什么必须委托到同一条校验路径。477 收藏 -
Java 进程 RSS 持续上涨时,先用 jcmd VM.native_memory 建立基线,再用 summary.diff 或 detail.diff 判断是 JVM 子系统、线程、类元数据还是 NMT 未覆盖的第三方原生内存。476 收藏 -
Java Stream takeWhile 不是筛出全部匹配项,而是在有序流中保留满足谓词的最长连续前缀。本文用具体数据说明首个 false、无状态谓词、unordered 和并行流的边界。476 收藏 -
使用 Jackson JsonNode 处理 JSON 更新请求时,字段缺失与显式 null 不是同一种状态。本文用 has、get、path、isNull 和 isMissingNode 给出清晰的判断方式,并说明 PATCH 更新时如何选择策略。475 收藏 -
Java 21 的 record pattern 可以递归匹配嵌套 record,并直接提取深层字段。本文用订单、客户和地址三层结构说明最小写法,重点处理 null、var 推断、泛型边界和可读性取舍。475 收藏