java教程技术文章
-
用 ObjectInputFilter 和 jdk.serialFilter 为 Java 反序列化输入建立类白名单、拒绝规则与资源上限,并说明全局过滤器和单流过滤器的配置边界。367 收藏 -
Java ReentrantLock 的 tryLock 超时调用会在等待结束时返回 false,被中断时抛出 InterruptedException。本文用一套可回滚的 try/finally 写法区分三条路径,并说明何时释放锁、何时清理资源以及公平锁的边界。190 收藏 -
从大文件上传场景出发,讲清 Java HttpRequest BodyPublisher 的 ofFile、ofInputStream、fromPublisher 与 concat 用法,以及长度、重试、背压和异步边界。488 收藏 -
JDK 21 的 SequencedCollection 为有遇见顺序的集合统一了首尾访问和反向视图。本文从迁移回归入手,说明类型收窄、空集合异常、不可修改实现、reversed 视图及公共 API 兼容处理。183 收藏 -
讲清 Java 模式匹配 switch 如何根据 sealed 层级判断穷尽性,并覆盖 null、default、泛型与 MatchException 的边界。301 收藏 -
用 Java Record 的紧凑规范构造器统一校验与规范化输入,并通过 List.copyOf 防止可变集合破坏对象不变量。100 收藏 -
讲清 Java 虚拟线程改造中任务并发与数据库连接的不同边界,并用连接池、超时和背压保护下游资源。236 收藏 -
Java Stream Gatherer 需要在输入耗尽后输出计数、最后元素或摘要时,应把数据保存在状态对象中,让 integrator 继续消费输入,再由 finisher 向下游推送尾部结果。本文说明 ofSequential 的写法、空流与短路边界,以及何时改用 Gatherers.fold。380 收藏 -
围绕 Java Thread.Builder.OfVirtual 讲清 uncaughtExceptionHandler 的绑定位置、start/unstarted/factory 的继承边界,以及虚拟线程未捕获异常的日志兜底方式。139 收藏 -
用 Java Stream Gatherer 实现短时间事件窗口:区分固定数量与时间窗口,处理状态、边界、尾窗和不可变快照,并给出可复现的指标评估方法。495 收藏 -
用 Java RandomGeneratorFactory.all() 按可拆分、可跳跃和可跃迁能力筛选随机算法,再按稳定规则创建生成器,厘清 getDefault() 与 stateBits 的边界。244 收藏 -
介绍 Java 17+ HexFormat 的 formatHex 与 parseHex,演示大小写、分隔符、前后缀、区间转换和非法输入处理。361 收藏 -
讲清 Java Files.mismatch 如何返回两个文件首个不同字节的位置,以及完全相同、前缀相同但长度不同、文本偏移和并发修改时的边界。342 收藏 -
Java 大文件不要先 readAllBytes 再 encodeToString。用 Base64.Encoder.wrap(OutputStream) 把编码器接到输出流上,输入端分块读取,关闭包装流时完成尾部补位,并根据协议选择基本、URL 或无补位编码。182 收藏 -
Java 模式匹配 switch 遇到 null 不会自动进入类型模式或 default,需要用 case null 显式表达空值策略;本文比较独立分支、与 default 合并的边界及测试清单。291 收藏