java教程技术文章
-
CompletableFuture.allOf 只能告诉你一组并发任务的聚合结果失败,不能直接定位具体任务。本文用 handle 保存每个任务的标识、成功值和原始异常,再结合 allOf 生成可重试、可告警的失败清单。429 收藏 -
Java Semaphore 不会自动校验 release 的许可数量。本文用许可守恒、日志计数和最小并发测试定位多释放、少释放以及中断路径造成的并发泄漏。427 收藏 -
讲清 Java Stream 使用 groupingBy 搭配 maxBy 获取每组最大时间记录的方法,并比较 Optional 展平、toMap 合并、空值和并列时间的处理边界。426 收藏 -
用 Java 25 的 StructuredTaskScope 组织 fork、join、close,明确并发子任务的共同完成、失败、超时和取消边界。425 收藏 -
用 Java Class-File API 把 class 文件解析为 ClassModel,按需遍历类名、字段、方法和 CodeModel,并处理惰性解析带来的异常边界。419 收藏 -
Java 堆稳定而进程 RSS 持续上涨时,可用 NMT 建立基线并读取 summary.diff,按 committed 分类增量判断 Class、Thread、Code、GC/Internal 等来源;若 NMT 总量稳定而 RSS 继续增长,则应转向 JNI、第三方库和系统级内存证据。414 收藏 -
用 Java HttpClient 的 sendAsync、响应体处理器和定时取消组合,处理响应体迟迟不完成的超时、资源收束与异常边界。413 收藏 -
Java 21 可根据 sealed 类型的允许子类型检查 switch 是否穷尽。本文用订单结果模型说明覆盖规则、为何省略 default,以及 null、守卫、泛型与版本演进边界。413 收藏 -
Java 的默认 Locale 会影响未显式指定区域设置的数字、日期和字符串格式化。本文说明 FORMAT Locale 的作用、常见不稳定场景,以及如何用显式 Locale 区分展示文本和机器协议。406 收藏 -
文章 · java教程 | 16小时前 | Java · 性能优化 · Stream · Java教程 · Java Stream Spliterator 并行流 parallelStream Stream副作用
把 stream() 改成 parallelStream() 之前,先判断数据规模与单元素成本、Spliterator 拆分质量、状态型操作、顺序约束、共享副作用和归约契约。本文给出六道筛选、代码改造方法和同输入对照清单,避免并行后更慢或结果不稳定。405 收藏 -
Java StructuredTaskScope 失败时,joiner 如何取消未完成子任务,FailedException、isCancelled 和 close 又分别说明什么?本文用 Java 25 预览 API 示例拆开传播链与关闭边界。400 收藏 -
Java ExecutorService 的 shutdown 与 shutdownNow 不是温和版和强制版的简单替换。本文从排队任务、执行中任务和中断协作三个边界出发,给出两阶段退出代码与判断清单。399 收藏 -
Java MemorySegment 的 Arena 选择,关键看 native memory 是否跨线程、是否需要显式 close,以及对象应该存活多久。本文用对比表和代码说明 confined、shared、auto、global 的适用边界。394 收藏 -
FileChannel.map 不是把整个文件装进 Java 堆。处理超大文件时应使用固定窗口、限制活跃映射数量,并处理跨窗口记录;Java 22+ 还可用 MemorySegment 和 Arena 管理生命周期。391 收藏 -
Java Primitive Patterns 遇到 int 转 byte 等数值窄化时,不会把信息损失静默变成成功匹配。本文用精确转换、兜底分支和旧 JDK 方案说明如何处理。389 收藏