java教程技术文章
-
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 收藏 -
Java Pattern 适合长期复用,Matcher 则携带可变匹配状态。本文比较一次性调用、顺序批处理和 ThreadLocal 三种方式,说明如何用 reset 复用 Matcher,同时避开多线程共享和输入生命周期问题。307 收藏 -
区分虚拟线程中的锁竞争与载体固定,说明JDK 24的JEP 491变化,用缓存快照示例讲解缩短临界区的条件,并提示并发刷新和原子业务的一致性边界。161 收藏 -
用 Java Stream 的 groupingBy 和 maxBy 按部门分组并保留工资最高的 Employee,说明 Optional、并列最大值、空输入和并行流边界。441 收藏 -
Java record 紧凑构造器可在隐式字段赋值前完成 null 检查、空白清理、大小写统一与业务不变量校验,让 accessor、equals 和序列化看到稳定状态。435 收藏 -
Java CompletableFuture 合并两个异步结果时,优先用 thenCombine 让两个阶段正常完成后生成新值;需要切换线程池时使用 thenCombineAsync,并区分无返回值组合、allOf、异常传播和 join 的使用边界。280 收藏 -
说明 Java AES/GCM 中 AEAD 标签的单位、拆分与拼接方式,以及标签校验失败时的正确处理边界。147 收藏