java教程技术文章
-
Java Files.find 通过 maxDepth 限制目录层级,并把 BasicFileAttributes 交给匹配器筛选普通文件、大小和后缀。本文还说明惰性 Stream 的关闭方式,以及 IOException 与 UncheckedIOException 的处理边界。487 收藏 -
用一个订单事件解析故障,拆开 Java record pattern 在类型匹配、嵌套解构和 null 分支中的边界。486 收藏 -
用 JDK 22 Linker API 调用 C 标准库 strlen,讲清符号查找、函数签名映射、Arena 生命周期、本地访问授权与生产边界。486 收藏 -
JDK 26 迁移时要区分 x86_32 与 x86_64。本文从 JEP 503 的版本边界出发,检查构建矩阵、native 依赖和运行探针,给出升级、保留旧运行时或迁移 64 位的判断方法。485 收藏 -
文章 · java教程 | 1星期前 | Java · 异步编程 · 性能排查 · java httpclient completablefuture 异步超时 HttpTimeoutException sendAsync
Java HttpClient 的 connectTimeout 只约束建立新连接,HttpRequest.timeout 才是请求级截止时间。本文用 sendAsync 示例区分两类超时,说明 CompletableFuture 的异常分类、取消边界和 p95/p99 指标记录方式。485 收藏 -
Java virtual threads 可以让每个请求保持简单的阻塞式写法,但 newVirtualThreadPerTaskExecutor 不会自动限制外部服务的并发量。本文用 Semaphore 包住真正的外部调用,说明许可归还、中断处理、超时和连接池边界。485 收藏 -
线程池满载或进入关闭流程时,任务拒绝不应该只变成一条模糊异常。本文从一个有限队列的订单异步任务池出发,拆解拒绝处理器的错误语义、四种内置策略与调用方重试边界,并给出可验收的 Java 示例。484 收藏 -
从线程模型、下游资源限流与容量估算三个层面,说明 Java 25 虚拟线程如何承载阻塞 I/O,并避免把大量线程误当成无限容量。484 收藏 -
围绕 JDK 26 AOT 启动问题,区分缓存失效与业务启动失败,提供独立训练示例、自动降级及严格模式命令,并说明制品对应、训练副作用、重建和回退的处理边界。484 收藏 -
Java 24 及更高版本可以用 Stream.gather 和 Gatherers.windowFixed 把连续元素聚成窗口,再映射成业务摘要。本文说明固定窗口、滑动窗口、尾窗口、不可修改结果和大窗口内存边界。484 收藏 -
Java HttpClient 的 sendAsync 收到 404 时,future 通常会正常完成,因为 404 是合法 HTTP 响应而非传输异常。本文用代码区分状态码、超时、连接失败和响应体处理错误。483 收藏 -
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 完成队列会把已完成的 Future 放入队列,适合从多个并发任务中按完成先后消费结果。本文用一个最快结果优先的查询场景,比较 take 与 poll 的边界,并说明超时后如何取消剩余任务和安全关闭线程池。479 收藏