java教程技术文章
-
用 JDK 22 Linker API 调用 C 标准库 strlen,讲清符号查找、函数签名映射、Arena 生命周期、本地访问授权与生产边界。486 收藏 -
从线程模型、下游资源限流与容量估算三个层面,说明 Java 25 虚拟线程如何承载阻塞 I/O,并避免把大量线程误当成无限容量。484 收藏 -
文章 · java教程 | 2天前 | 线程池 · 异常处理 · 并发编程 · Java教程 · CompletableFuture · 异步任务 completablefuture allOf Handle 结果汇总 CompletionException
本文解释 CompletableFuture.allOf 为什么只返回 Void、如何在完成屏障后汇总子任务结果,并通过 handle 将任务名、成功值和根异常保存到 TaskResult,解决多任务失败归属不清的问题。482 收藏 -
Java ClassValue 适合替代按 Class 做全局强引用缓存,但它不是类加载器泄漏的万能修复。本文从引用路径、computeValue、remove 和卸载检查四个角度说明正确用法与边界。464 收藏 -
Java 命名模块中 ServiceLoader 读不到实现,通常不是接口代码有问题,而是消费模块缺少 uses、实现模块缺少 provides with、提供者不满足 public 构造约束,或实现模块未进入 module path 与解析图。本文用三模块最小示例给出完整排查方法。462 收藏 -
文章 · java教程 | 4天前 | Java · 并发编程 · 虚拟线程 · Java虚拟线程 ForkJoinPool Virtual Threads 调度器并行度 jdk.virtualThreadScheduler.parallelism
Java 虚拟线程调度器可通过 jdk.virtualThreadScheduler.parallelism 单独设置承载平台线程数。本文说明启动参数、验证示例、与 commonPool 及 maxPoolSize 的区别,并给出调优判断方法。459 收藏 -
Java 25 的 ScopedValue 适合替代只读 ThreadLocal 上下文:用有界动态作用域传递不可变请求信息,并明确嵌套绑定、线程继承和迁移边界。457 收藏 -
从停顿、吞吐和进程内存余量三个维度比较 G1 与 ZGC,给出 Xmx 估算、统一压测参数、GC 日志指标和灰度回退清单。446 收藏 -
Java 22+ 可用 FileChannel.map 返回 MemorySegment,以 long 尺寸映射超过 2GB 的文件,并由 Arena 确定解除映射时机。本文从用户任务出发,给出只读映射、窗口切片、并行读取、性能检查和空文件、跨窗记录、文件截断等边界处理方法。435 收藏 -
文章 · java教程 | 2天前 | Java · 异步编程 · Java HttpClient BodyHandlers.fromLineSubscriber Flow.Subscriber 异步响应 按行消费
Java HttpClient 可通过 BodyHandlers.fromLineSubscriber 将文本响应逐行交给 Flow.Subscriber。本文给出带 request(1) 背压、异步处理、状态码分流和异常取消的完整实现。433 收藏 -
用 Java 25 的 StructuredTaskScope 组织 fork、join、close,明确并发子任务的共同完成、失败、超时和取消边界。425 收藏 -
Java 24+ 的 Class-File API 把 LineNumberTable 映射为 CodeModel 中的 LineNumber 元素。本文用 CodeTransform 只重写指定方法的行号,说明保留字节码、筛选方法和处理调试信息时的边界。418 收藏 -
Java 堆稳定而进程 RSS 持续上涨时,可用 NMT 建立基线并读取 summary.diff,按 committed 分类增量判断 Class、Thread、Code、GC/Internal 等来源;若 NMT 总量稳定而 RSS 继续增长,则应转向 JNI、第三方库和系统级内存证据。414 收藏 -
Java 21 可根据 sealed 类型的允许子类型检查 switch 是否穷尽。本文用订单结果模型说明覆盖规则、为何省略 default,以及 null、守卫、泛型与版本演进边界。413 收藏 -
文章 · java教程 | 2天前 | Java · 性能优化 · Stream · Java教程 · Java Stream Spliterator 并行流 parallelStream Stream副作用
把 stream() 改成 parallelStream() 之前,先判断数据规模与单元素成本、Spliterator 拆分质量、状态型操作、顺序约束、共享副作用和归约契约。本文给出六道筛选、代码改造方法和同输入对照清单,避免并行后更慢或结果不稳定。405 收藏