java教程技术文章
-
文章 · java教程 | 1星期前 | Java · nio · HTTP客户端 · java httpclient HttpRequest BodyPublisher HTTP请求体 BodyPublishers
Java HttpRequest 的请求体不是直接塞入字符串,而是通过 BodyPublisher 提供字节流。本文按数据来源选择 BodyPublishers 工厂,说明 POST、PUT、自定义方法、长度契约和输入流复用边界。386 收藏 -
文章 · java教程 | 1星期前 | 文件处理 · Java · 异常处理 · nio · java 文件替换 Files.move ATOMIC_MOVE REPLACE_EXISTING 原子移动
Java Files.move 的 ATOMIC_MOVE 与 REPLACE_EXISTING 解决的是不同问题:前者约束原子移动,后者允许覆盖已存在目标。本文按 FileStore、目标状态和原子性要求拆解选择方式,并给出 AtomicMoveNotSupportedException 的处理边界。290 收藏 -
Path.normalize 只按路径名称规则消除 . 和 ..,不会访问文件系统,也就不会检查符号链接。本文用 Java NIO 的 API 对比说明语义差异,并给出需要真实目标时的处理方式。497 收藏 -
从批量数值处理的输入路径解释 BigDecimal(double) 长尾的来源,比较字符串构造与 valueOf,并说明先做浮点运算、scale 和舍入规则的处理边界。162 收藏 -
Java Map.computeIfAbsent 的映射函数执行期间不应修改当前 Map。本文从外层写回时机、同键递归和不同 Map 实现的异常差异出发,给出纯计算、分阶段写入和回滚复查的排障手册。450 收藏 -
Java Collectors.filtering 适合放在 groupingBy 的下游,按条件过滤每个分组的元素,同时保留没有匹配值的分组键。本文用原创示例说明它与先调用 Stream.filter 的差异,以及如何选择下游 Collector。249 收藏 -
Java String.splitWithDelimiters 会把文本片段和匹配到的分隔符交替放进结果数组。掌握正则、limit 和尾部空字符串规则,就能避免 split 后再猜分隔符位置。359 收藏 -
Java Optional 处理可能为空的查询结果时,可以用 ofNullable 接住 null,再用 orElseThrow 指定异常类型和消息,让调用方得到清晰的失败原因。397 收藏 -
Java 模块系统没有单独的只读导出关键字。本文用 exports 暴露稳定 API 包,把实现包留在模块内部,并说明限定导出、public、子包与 opens 的边界。293 收藏 -
介绍 Java CRC32C 如何对数组区间、流式读取和 ByteBuffer 分块持续计算校验值,重点说明实际长度、position、getValue 与 reset 的边界。189 收藏 -
Java JFR 自定义事件的关键不是把日志换一种格式,而是把事件类型、业务字段、持续时间和 Recording 采集边界放进同一套 JVM 诊断模型。本文从一个慢操作诊断场景出发,讲清 Event 定义、shouldCommit、begin/end、commit 与 Recording 的职责。456 收藏 -
Java Optional 更适合表达方法可能没有结果,而不是长期挂在 DTO 或领域对象字段上。本文从一次字段改动引发的构造、序列化和调用问题出发,说明如何把缺失值语义放回正确边界。179 收藏 -
Java Cleaner 适合为资源释放提供 GC 兜底,但清理动作不能持有被注册对象本身。本文用静态状态类、Cleanable 和 AutoCloseable 组织一份可落地的写法,并说明显式 clean、重复清理和阻塞动作的边界。128 收藏 -
使用try-with-resources关闭Files.walk返回的Stream,讲解findFirst短路与异常路径的资源释放,区分IOException和UncheckedIOException,并说明返回Path、集合或Stream时的所有权。315 收藏 -
Java HttpClient 的 connectTimeout 负责新连接建立,HttpRequest.timeout 负责请求响应等待。本文用 Java 代码和异常边界说明两者的作用域、连接复用影响与排查方法。189 收藏