java教程技术文章
-
Java JFR 降低诊断开销的关键不是关闭记录,而是先选对配置,再按事件设置 period、threshold 和 stackTrace,最后检查 JFR 文件是否包含足够证据。129 收藏 -
文章 · java教程 | 1星期前 | 故障排查 · Java教程 · java SPI ServiceLoader ClassLoader module-info.java META-INF/services
Java ServiceLoader 找不到实现类时,优先检查 META-INF/services 文件是否进入 JAR、实现类全限定名是否正确,以及模块化项目的 uses/provides 声明。本文按 JAR、模块、ClassLoader 和初始化边界给出一套可执行排查清单。490 收藏 -
Java HttpClient 的 BodyHandlers.ofInputStream 适合边收边处理的大响应,但调用方必须消费或关闭返回的 InputStream。本文对比 ofString、ofByteArray、ofFile 和 ofInputStream,给出状态码判断、流复制与资源清理的安全写法。145 收藏 -
Java Record 的参数校验应集中放在规范构造器中:用 compact constructor 处理清洗、非空、格式和范围约束,重载构造器统一委托,避免对象从旁路入口创建。189 收藏 -
解释 Java Pattern.DOTALL 为什么让点号匹配换行,区分 DOTALL、MULTILINE 与 UNIX_LINES 的作用,并用 Java 示例说明如何限定跨行匹配范围、避免贪婪量词吞掉后续内容。199 收藏 -
Java NIO FileChannel 共享 position 时,多个线程先定位再写入可能互相覆盖。本文用显式位置写入、区间分配和应用层锁,说明并发读写的安全边界。175 收藏 -
Java Path.normalize() 只整理 . 和 .. 等冗余名称,不检查文件是否存在;toRealPath() 会访问文件系统并返回已存在目标的绝对真实路径。本文用符号链接和选择清单说明两者边界。298 收藏 -
已知 HashMap 的预计映射数时,不要直接把条目数当初始容量;本文用默认负载因子 0.75 说明估算公式、JDK 19+ 的 newHashMap 和容量过大的代价。350 收藏 -
BigDecimal 的 equals 同时比较数值和 scale,而 compareTo 只比较数值。本文用 2.0 与 2.00 说明条件判断、规范化和 HashSet、TreeSet 的选择边界。452 收藏 -
文章 · java教程 | 1星期前 | 异常处理 · 并发编程 · api设计 · Java教程 · CompletableFuture · java 异常处理 异步编程 completablefuture Handle 统一结果
用 CompletableFuture.handle 同时处理成功值和异常,把异步调用统一转换为稳定的业务结果对象,并对比 exceptionally、whenComplete 的适用边界与常见误区。338 收藏 -
通过可观察的工厂示例解释 Java Optional.orElse 与 orElseGet 的求值边界,给出默认值成本、副作用、异常语义和代码评审清单,帮助选择真正惰性的默认值写法。436 收藏 -
用 TreeMap 工厂和自定义 Comparator 控制 Java Stream groupingBy 的分组键顺序,并说明时间比较器相等导致键合并的边界。448 收藏 -
ByteBuffer 写入完成后要先 flip 才能按有效数据读取。本文用具体状态值说明 position、limit、capacity 的变化,并区分 flip、rewind、clear 与 compact。368 收藏 -
Java Files.find 和 Files.walk 都能搜索文件树,但过滤条件的落点不同:属性条件优先放进 find,路径流组合和后续转换更适合 walk。本文用可关闭资源的示例说明 maxDepth、BasicFileAttributes、filter 和异常边界。348 收藏 -
文章 · java教程 | 1星期前 | Java · 异常处理 · 资源管理 · java try-with-resources AutoCloseable close suppressed exception
Java try-with-resources 多个资源时按声明顺序初始化、按相反顺序关闭;本文说明初始化失败、close 异常和 suppressed exception 的判断方法。501 收藏