java教程技术文章
-
文章 · java教程 | 3星期前 | 数据校验 · api设计 · Java教程 · 参数校验 Java record API DTO Jakarta Validation 紧凑规范构造器 跨字段校验
Java Record 作为 API DTO 时,不要把所有校验都塞进构造器。本文按字段格式、Record 自身不变量、跨字段业务规则和外部依赖四类边界,说明紧凑规范构造器、Jakarta Validation 与应用服务各自适合承担什么校验。370 收藏 -
Java 25 StructuredTaskScope 可把一组相关子任务纳入同一生命周期:失败、调用方中断或整体超时时统一取消未完成任务,并通过中断协作完成收尾。370 收藏 -
Java Commons Codec 可以直接消费 InputStream 计算文件摘要,不必先把整个文件读入内存。本文比较 DigestUtils 的便捷入口、File/Path 重载和 MessageDigest 组合写法,给出大文件场景的选择清单。370 收藏 -
Java HttpClient WebSocket 的接收节奏由 request(n) 控制回调次数,而不是由 CompletionStage 自动限流。本文结合 WebSocket.Listener 说明 request、last、CompletionStage、关闭和异常处理的边界,并给出单次与有限批量申请的选择方法。370 收藏 -
用 ObjectInputFilter 和 jdk.serialFilter 为 Java 反序列化输入建立类白名单、拒绝规则与资源上限,并说明全局过滤器和单流过滤器的配置边界。367 收藏 -
Java 使用虚拟线程后,可以通过 jcmd Thread.dump_to_file 导出包含虚拟线程的文本或 JSON 线程转储。本文从目标 JVM、格式选择、输出边界和诊断材料整理四个方面说明用法,并提醒它不是暂停 JVM 的一致快照。366 收藏 -
Java HttpClient ofFileDownload 使用响应头文件名保存附件,说明目录准备、重名拒绝、状态码门控与异常处理边界,避免把落盘完成误认为业务成功。365 收藏 -
Java 的 DecimalStyle 可以把日期格式中的数字、正负号和小数点替换为本地化符号。本文用 DateTimeFormatter 演示非拉丁数字的配置、输出、解析与复用边界。365 收藏 -
Java 模块系统中,uses、provides 和 requires static 负责描述服务边界,ServiceLoader.findFirst() 可以在没有可选实现时回退到默认实现。本文给出模块声明、加载代码与排错边界。363 收藏 -
Java LocalDateTime 本身没有时区信息,使用显式 ZoneOffset 调用 toInstant 可以得到不依赖机器默认时区的绝对时间点。362 收藏 -
Java Pattern.asMatchPredicate 可以把已编译正则转换为 Predicate,直接交给 Stream.filter 做整条字符串筛选。本文对比 asPredicate 的子串查找语义,给出复用 Pattern、处理空输入和选择并行边界的紧凑写法。361 收藏 -
Java WatchService 的 OVERFLOW 表示事件可能已被丢弃,不能把它当成具体文件名处理。本文说明如何按监听目录重扫、用快照和业务索引对账,并正确 reset WatchKey 与关闭 WatchService。360 收藏 -
解释 Java URI.resolve 对普通相对路径、根相对路径和网络路径引用的处理差异,并给出解析后检查 scheme、host 与 path 的安全封装。359 收藏 -
Java String.splitWithDelimiters 会把文本片段和匹配到的分隔符交替放进结果数组。掌握正则、limit 和尾部空字符串规则,就能避免 split 后再猜分隔符位置。359 收藏 -
Java Vector API 处理非整数倍数组长度时,用 VectorSpecies.indexInRange 生成尾部 Mask,安全完成加载、计算和写回,并对比 loopBound 加标量尾循环的适用边界。358 收藏