java教程技术文章
-
XMLEventReader.peek只观察下一个XML事件,不改变读取位置;nextEvent读取并消费事件。本文用事件循环、分支判断和EOF边界说明两者的选择。266 收藏 -
使用 Java NumberFormat 工厂按 Locale 创建紧凑数字格式器,解释 SHORT/LONG、小数位和任务实例复用,并保留原始数值用于存储和计算。266 收藏 -
Java ServiceLoader 适合把接口与实现解耦,但真正容易出错的是提供者发现、延迟实例化和单个坏实现对迭代器的影响。本文用一个 Formatter 服务拆开 uses、provides、Provider.type 与 Provider.get 的边界。265 收藏 -
Java CharsetDecoder 默认可能用替换字符掩盖非法字节。本文用 REPORT 模式捕获 MalformedInputException,拆解 ByteBuffer 的 underflow/overflow 边界,并给出可核对解码结果的最小示例。265 收藏 -
文章 · java教程 | 2个月前 | Java · IO · 异常处理 · jdk · PrintStream JDK 26.0.2 PrintWriter checkError InterruptedIOException
JDK 26.0.2 调整 PrintStream 与 PrintWriter 的中断写入行为:自定义输出流抛出 InterruptedIOException 后,不仅保留线程中断状态,还会设置包装器错误标记,使 checkError 返回 true。本文说明兼容差异与处理边界。265 收藏 -
CompletableFuture 异常处理要先定位阶段,再按目标选择 exceptionally、handle、whenComplete 或 exceptionallyCompose,并检查异常包装与线程池。265 收藏 -
Java Stream 分组后保留每组首条记录,先用稳定排序定义首条,再用 toMap 合并函数保留旧值;复杂比较规则则集中到 Collector,并检查并行流、null 与重复键边界。265 收藏 -
Java 虚拟线程适合承载大量等待型任务,但不应代替网络资源限流。本文用 Semaphore 包住 HttpClient 请求边界,说明许可归还、超时、连接能力和重试参数如何分开配置。265 收藏 -
Java sealed interface 在未命名模块中要求 permits 子类型同包;命名模块可以跨包但不能跨模块。本文按 package、module 和 permits 三层关系拆解常见编译错误与代码组织方式。265 收藏 -
处理跨地区订单或预约时间时,LocalDateTime 遇到夏令时重复小时会对应两个瞬间。本文用 ZoneRules 判断重复与缺失时间,明确偏移选择,并用回放测试锁住边界。264 收藏 -
Java HttpClient 在 JDK 25 及以上可用 BodyHandlers.limiting 限制下游收到的响应体字节数,超限会取消上游并以 IOException 结束;JDK 11 到 24 则可用自定义 Flow.Subscriber 实现同样的硬上限。263 收藏 -
用 Java Future.state 判断任务尚未完成、正常完成、异常完成和取消状态,再安全读取 resultNow 与 exceptionNow。263 收藏 -
Java Stream 做分组统计时,先收集再多次遍历容易放大内存和 CPU 成本。本文用订单状态统计说明 groupingBy、groupingBy+下游收集器与并行流的边界,并给出可复查的基准与选择方法。260 收藏 -
文章 · java教程 | 1个月前 | 异常处理 · 并发编程 · Java教程 · StructuredTaskScope Java Structured Concurrency Joiner allUntil 子任务异常 聚合异常
Java Structured Concurrency 默认只传播首个子任务失败。本文基于 JDK 27 预览 API,使用 Joiner.allUntil 等待全部任务,按状态收集异常,并用 suppressed exceptions 保留完整根因。260 收藏 -
Java FFM API 的 MemorySegment 生命周期由关联作用域决定。本文比较四类 Arena,用独立示例说明切片与关闭后访问,并明确跨线程借用和释放责任。259 收藏