java教程技术文章
-
Java Map.computeIfAbsent 的映射函数返回 null 时不会记录键值映射。本文按触发条件、返回结果、异常边界和缓存策略拆开说明,帮助你区分未命中、空值与计算失败。117 收藏 -
使用 Jackson JsonNode 处理 JSON 更新请求时,字段缺失与显式 null 不是同一种状态。本文用 has、get、path、isNull 和 isMissingNode 给出清晰的判断方式,并说明 PATCH 更新时如何选择策略。475 收藏 -
BigDecimal 无参 divide 遇到 1/3 等非终止小数会抛出 ArithmeticException。本文按金额、比例和精确校验三类场景,说明 scale、RoundingMode 与 MathContext 的选择边界。163 收藏 -
Java Matcher 判断可选分组时,要在成功匹配后区分 null、空字符串和非空内容。用备注行解析器说明命名捕获组、位置判断、状态误用和业务集成。140 收藏 -
文章 · java教程 | 1星期前 | 文件处理 · Java · Stream · try-with-resources 文件遍历 Files.find Java Files.walk Stream
Java Files.walk 返回的 Stream可能持有打开目录,filter 只负责筛选元素并不会关闭资源。本文用 try-with-resources 处理正常结束、提前终止和异常路径,并说明 maxDepth、符号链接、UncheckedIOException 与 Files.find 的选择边界。 210 收藏 -
用同一个 Java HttpClient 实例承载连接复用,用 HttpRequest 描述单次调用,再根据文本或二进制场景选择 BodyHandler 读取响应体,并处理状态码、异步调用和关闭时机。349 收藏 -
Java CompletableFuture 的超时处理要先选对语义:用 orTimeout 保留超时异常,再用 exceptionally 做回退;如果超时本身就是可接受结果,则用 completeOnTimeout 直接返回默认值。396 收藏 -
Java flatMap 可以自然展开空集合,但 null 子集合和 null 元素需要不同策略。通过标签汇总示例说明空流、参数拒绝、职责边界与接入清单。266 收藏 -
Files.readString(path) 默认按 UTF-8 解码;文件实际编码不是 UTF-8 时,应使用带 Charset 参数的重载。本文从乱码根因、显式字符集写法和大文件边界三个方面给出可落地的选择方法。377 收藏 -
Java ByteBuffer.slice 创建的是共享内容视图:新缓冲区从源 position 开始,拥有独立的 position、limit 和 mark,但对共享字节的修改仍会彼此可见。本文用结构示例区分 slice、duplicate、只读视图和显式复制。464 收藏 -
区分 Java 泛型记录的静态类型推断与组件值匹配,比较显式实参、var、通配符和嵌套模式,说明未经检查转换及空值边界。452 收藏 -
Java record 可以通过规范化构造器统一完成参数校验、空白清理、大小写转换和范围规范化。本文说明紧凑构造器与显式构造器的写法,并解释替代构造器为什么必须委托到同一条校验路径。477 收藏 -
Java Pattern.split 遇到连续、首尾分隔符时,关键在于 limit 参数:默认 limit=0 会丢弃尾部空字符串,负数 limit 才能保留完整字段。本文用静态边界说明和可复制示例讲清选择方法。149 收藏 -
Java Stream 中直接修改外部 List、Map 或计数器,会让并行执行出现数据竞争、结果不稳定或锁竞争。本文说明如何识别共享可变状态,并用 toList、groupingBy、reduce 和 Collector 改写。403 收藏 -
以G1统一日志为范围,说明如何按进程与时间窗归并GC记录,区分暂停、并发阶段和安全点等待,并依据资源与对象分配证据进行单项处置及回退。352 收藏