java教程技术文章
-
使用 Java Flight Recorder 的 RecordingFile.write 按事件类型筛选已有 recording.jfr,导出新的 JFR 文件;本文说明事件名称、多个事件白名单、类型清单和三种读取方式的选择边界。288 收藏 -
Java Arrays.mismatch 会返回两个数组的首个差异位置;完全相同返回 -1,一个数组只是另一个数组的前缀时返回较短数组长度。本文用整数组、范围重载和对象数组示例说明如何读取这个结果。244 收藏 -
通过共享计数器示例说明 ReentrantLock 公平锁的创建、成功获取后的释放,以及无参和限时 tryLock 的差别,并解释线程调度与吞吐取舍。247 收藏 -
Java HttpResponse.BodyHandlers.ofInputStream() 会在响应头到达后提供 InputStream,适合逐块处理大响应。本文说明固定缓冲区读取、状态码判断、EOF 与 close 的边界,并对比常用 BodyHandler 的选择方式。220 收藏 -
文章 · java教程 | 3天前 | Java · nio · HTTP客户端 · java httpclient HttpRequest BodyPublisher HTTP请求体 BodyPublishers
Java HttpRequest 的请求体不是直接塞入字符串,而是通过 BodyPublisher 提供字节流。本文按数据来源选择 BodyPublishers 工厂,说明 POST、PUT、自定义方法、长度契约和输入流复用边界。386 收藏 -
文章 · java教程 | 3天前 | 文件处理 · 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 收藏