java教程技术文章
-
Java 虚拟线程适合承载大量等待型任务,但不应代替网络资源限流。本文用 Semaphore 包住 HttpClient 请求边界,说明许可归还、超时、连接能力和重试参数如何分开配置。265 收藏 -
Java 25 StructuredTaskScope 可把一组相关子任务纳入同一生命周期:失败、调用方中断或整体超时时统一取消未完成任务,并通过中断协作完成收尾。370 收藏 -
Java 25 的 ScopedValue 适合替代只读 ThreadLocal 上下文:用有界动态作用域传递不可变请求信息,并明确嵌套绑定、线程继承和迁移边界。457 收藏 -
从输入信任边界、ObjectInputFilter 白名单与资源上限,到 JSON/Protocol Buffers 等显式格式迁移,说明 Java 序列化如何安全收紧并保留兼容性。278 收藏 -
文章 · java教程 | 5天前 | Java · 异常处理 · AutoCloseable Java try-with-resources suppressed exception 关闭顺序 getSuppressed
Java try-with-resources 会按资源初始化的反序关闭。try 主体先失败时,关闭异常进入 suppressed;主体正常时,第一个关闭异常成为主异常。本文用多资源示例梳理完整判断方法。197 收藏 -
Java 命名模块中 ServiceLoader 读不到实现,通常不是接口代码有问题,而是消费模块缺少 uses、实现模块缺少 provides with、提供者不满足 public 构造约束,或实现模块未进入 module path 与解析图。本文用三模块最小示例给出完整排查方法。462 收藏 -
使用 Java HttpClient 与 CompletableFuture 封装可取消的异步 GET 重试:只重试暂时性异常和指定状态码,加入退避、最大次数与请求超时,并把外层取消传播到当前 HTTP 交换或等待任务。212 收藏 -
从停顿、吞吐和进程内存余量三个维度比较 G1 与 ZGC,给出 Xmx 估算、统一压测参数、GC 日志指标和灰度回退清单。446 收藏 -
Java 堆稳定而进程 RSS 持续上涨时,可用 NMT 建立基线并读取 summary.diff,按 committed 分类增量判断 Class、Thread、Code、GC/Internal 等来源;若 NMT 总量稳定而 RSS 继续增长,则应转向 JNI、第三方库和系统级内存证据。414 收藏 -
文章 · java教程 | 6天前 | Java · 性能优化 · Stream · Java教程 · Java Stream Spliterator 并行流 parallelStream Stream副作用
把 stream() 改成 parallelStream() 之前,先判断数据规模与单元素成本、Spliterator 拆分质量、状态型操作、顺序约束、共享副作用和归约契约。本文给出六道筛选、代码改造方法和同输入对照清单,避免并行后更慢或结果不稳定。405 收藏 -
通过一次支付处理中状态被误判为失败的复盘,演示如何用 Java sealed interface、record 与模式匹配 switch 固定结果集合、获得编译期穷尽检查,并设计同模块扩展边界。270 收藏 -
文章 · java教程 | 6天前 | 数据校验 · api设计 · Java教程 · 参数校验 Java record API DTO Jakarta Validation 紧凑规范构造器 跨字段校验
Java Record 作为 API DTO 时,不要把所有校验都塞进构造器。本文按字段格式、Record 自身不变量、跨字段业务规则和外部依赖四类边界,说明紧凑规范构造器、Jakarta Validation 与应用服务各自适合承担什么校验。370 收藏 -
文章 · java教程 | 6天前 | 线程池 · 异常处理 · 并发编程 · Java教程 · CompletableFuture · 异步任务 completablefuture allOf Handle 结果汇总 CompletionException
本文解释 CompletableFuture.allOf 为什么只返回 Void、如何在完成屏障后汇总子任务结果,并通过 handle 将任务名、成功值和根异常保存到 TaskResult,解决多任务失败归属不清的问题。482 收藏