java教程技术文章
-
从输入信任边界、ObjectInputFilter 白名单与资源上限,到 JSON/Protocol Buffers 等显式格式迁移,说明 Java 序列化如何安全收紧并保留兼容性。278 收藏 -
Java HttpClient 通过 HttpClient.Builder.followRedirects 设置重定向策略。本文比较 NEVER、NORMAL 和 ALWAYS 的行为,说明默认值、HTTPS 到 HTTP 的边界、POST 方法变化,以及如何查看 previousResponse。277 收藏 -
用 Java Commons Compress 读取 tar 时,核心是以 TarArchiveInputStream 为当前归档流,用 getNextEntry() 逐项定位,再读取当前项字节。本文补上目录、编码、路径安全、资源关闭和大文件处理边界。274 收藏 -
InflaterInputStream.available() 只表示当前是否已到 EOF,未结束时通常返回 1,结束后返回 0,并不代表还剩多少字节。本文用正确的 read() 循环、资源关闭和排查日志说明如何判断压缩流真正结束。271 收藏 -
Java HttpClient 的响应头从 HttpResponse.headers() 取得,再按需求使用 firstValue、allValues 或 map。本文用一段最小示例说明单值、多值、大小写和缺失响应头的处理边界。271 收藏 -
通过一次支付处理中状态被误判为失败的复盘,演示如何用 Java sealed interface、record 与模式匹配 switch 固定结果集合、获得编译期穷尽检查,并设计同模块扩展边界。270 收藏 -
Java flatMap 可以自然展开空集合,但 null 子集合和 null 元素需要不同策略。通过标签汇总示例说明空流、参数拒绝、职责边界与接入清单。266 收藏 -
Java 虚拟线程适合承载大量等待型任务,但不应代替网络资源限流。本文用 Semaphore 包住 HttpClient 请求边界,说明许可归还、超时、连接能力和重试参数如何分开配置。265 收藏 -
Java sealed interface 在未命名模块中要求 permits 子类型同包;命名模块可以跨包但不能跨模块。本文按 package、module 和 permits 三层关系拆解常见编译错误与代码组织方式。265 收藏 -
文章 · java教程 | 2星期前 | 异常处理 · 并发编程 · Java教程 · StructuredTaskScope Java Structured Concurrency Joiner allUntil 子任务异常 聚合异常
Java Structured Concurrency 默认只传播首个子任务失败。本文基于 JDK 27 预览 API,使用 Joiner.allUntil 等待全部任务,按状态收集异常,并用 suppressed exceptions 保留完整根因。260 收藏 -
Java FFM API 的 MemorySegment 生命周期由关联作用域决定。本文比较四类 Arena,用独立示例说明切片与关闭后访问,并明确跨线程借用和释放责任。259 收藏 -
JDK 26 中启用 Shenandoah 不等于默认使用分代模式。本文说明 generational 与 satb 的显式选择、构建支持、启发式限制以及同条件对照和回退方法。250 收藏 -
Java Collectors.filtering 适合放在 groupingBy 的下游,按条件过滤每个分组的元素,同时保留没有匹配值的分组键。本文用原创示例说明它与先调用 Stream.filter 的差异,以及如何选择下游 Collector。249 收藏 -
Java Matcher 可以通过 region(start, end) 把搜索限制在原字符串的半开区间内。本文用具体示例说明 find、matches、lookingAt 的范围变化,并解释 anchoring bounds、transparent bounds 与 lookaround 的边界差异。247 收藏 -
通过共享计数器示例说明 ReentrantLock 公平锁的创建、成功获取后的释放,以及无参和限时 tryLock 的差别,并解释线程调度与吞吐取舍。247 收藏