java教程技术文章
-
文章 · java教程 | 2星期前 | 反序列化 · Java教程 · 安全编程 · Java IO · java Java安全 ObjectInputFilter 反序列化过滤 Serialization Filter
Java ObjectInputFilter 可以在对象反序列化过程中检查类名、数组长度、对象图深度、引用数和输入字节数。本文用一个白名单场景写出最小过滤器,并用可验证的拒绝案例检查边界。257 收藏 -
文章 · java教程 | 2星期前 | 反序列化 · Java教程 · 安全编程 · Java IO · java Java安全 ObjectInputFilter 反序列化过滤 Serialization Filter
Java ObjectInputFilter 可以在对象反序列化过程中检查类名、数组长度、对象图深度、引用数和输入字节数。本文用一个白名单场景写出最小过滤器,并用可验证的拒绝案例检查边界。186 收藏 -
文章 · java教程 | 2星期前 | 密码学 · Java教程 · Java 25 · HKDF · 密钥派生 · Java 25 KDF Key Derivation Function API HKDF JEP 510 密钥派生
Java 25 新增 Key Derivation Function API,可用 HKDF 从已有密钥材料派生用途隔离的子密钥。本文用可运行示例说明 Extract、Expand、salt、info 和测试验收边界,避免把 KDF 当成加密或哈希替代品。147 收藏 -
用 Java 25 的 java.lang.classfile 读取 class 文件中的方法签名,解释 ClassModel 遍历、按需解析、版本检查和 verify 验收边界,并给出可直接运行的最小示例。143 收藏 -
Java 25 将灵活构造器正式化,构造器可以在 super 或 this 调用前做不依赖实例的计算、参数校验和字段初始化。本文用一个继承场景拆解新语法、旧版本编译边界、字段访问限制与迁移检查。270 收藏 -
文章 · java教程 | 2星期前 | Java教程 · Java 24 · 字节码 · Class-File API · JVM工具 · 字节码 Java 24 Class-File API ClassModel ASM替代 java.lang.classfile
Java 24 将 Class-File API 放进 java.base,ClassFileVersion 可以帮助工具识别 class 文件的 major/minor version。本文从一个可运行的小实验开始,演示读取版本、定位高版本拒绝原因,并延伸到 ClassModel、MethodModel 与生产边界。352 收藏 -
Java 25 的 StructuredTaskScope 仍是预览 API,适合把一次请求拆成多个并发子任务,再以结构化的 join、失败传播和超时边界收拢结果。本文用商品详情聚合场景拆开 open、fork、join、TimeoutException 和预览编译参数。428 收藏 -
文章 · java教程 | 2星期前 | 并发编程 · Java教程 · 虚拟线程 · threadlocal 请求上下文 Java 25 StructuredTaskScope ScopedValue
Java 25 已将 ScopedValue 正式纳入平台 API。本文用一个并发读取请求上下文的场景,说明它与 ThreadLocal 的职责差异、绑定生命周期、StructuredTaskScope 继承规则,以及上线前如何验证预览 API 和不可变数据边界。391 收藏 -
Java 文件上传不能只检查后缀。本文从文件名拼接、Path.normalize 的边界、符号链接和临时文件落盘四个环节,给出一套可核对、可回滚的安全实现。296 收藏 -
文章 · java教程 | 3星期前 | Stream · Java教程 · 性能边界 · mapMulti · flatMap · Java mapMulti Stream flatMap Java Stream 条件展开 Java 16
Java Stream 的 mapMulti 适合把一个元素展开为零个或少量结果,尤其适用于带条件分支的解析和提取。本文用订单标签解析示例说明它与 flatMap 的选择、泛型推断、Consumer 生命周期和验收边界。250 收藏 -
Java Optional.orElse 会在参数求值阶段执行备用方法,即使 Optional 已经有值也无法跳过副作用。本文用订单缓存回源场景对比 orElse 与 orElseGet,说明调用时机、性能成本、空值边界和可验证的测试写法。150 收藏 -
Java CompletableFuture 里的 exceptionally、handle 和 whenComplete 都能接住异常,但职责并不相同。本文用一条可运行的订单校验流水线说明三者的返回值、异常传播、旁路记录和质量门禁边界,帮助你把失败处理放在正确的位置。125 收藏 -
支付渠道类型一多,enum 加 switch 容易把新增渠道遗漏在多个分支里。本文用 Java sealed interface 建模支付路由,和 enum + switch 做边界对比,给出兼容扩展、测试覆盖和上线选择建议。242 收藏 -
文章 · java教程 | 3星期前 | 故障排查 · Java教程 · JFR · 虚拟线程 · 并发性能 · synchronized reentrantlock 虚拟线程 JFR Java 21 VirtualThreadPinned
Java 21 虚拟线程并不是开得越多越快。只要把慢 I/O 放进 synchronized,虚拟线程就可能 pin 住承载它的平台线程,吞吐随并发上升反而下降。本文用 JFR 和 tracePinnedThreads 还原定位过程,并给出锁替换与版本边界。343 收藏 -
Java 项目本地构建通过、CI 却失败,往往不是代码突然变坏,而是 JDK、Maven 依赖缓存和质量检查没有被流水线固定。本文用一个订单服务的构建场景,拆开版本矩阵、依赖缓存、测试门禁和失败通知的配置边界。434 收藏