java教程技术文章
-
BigDecimal 无参 divide 遇到 1/3 等非终止小数会抛出 ArithmeticException。本文按金额、比例和精确校验三类场景,说明 scale、RoundingMode 与 MathContext 的选择边界。163 收藏 -
Java 模式 switch 的 default 不接收 null。本文通过独立空值分支、组合兜底和输入矩阵,说明如何区分缺失值与未知类型,定位分支内部的空指针风险。162 收藏 -
从批量数值处理的输入路径解释 BigDecimal(double) 长尾的来源,比较字符串构造与 valueOf,并说明先做浮点运算、scale 和舍入规则的处理边界。162 收藏 -
区分虚拟线程中的锁竞争与载体固定,说明JDK 24的JEP 491变化,用缓存快照示例讲解缩短临界区的条件,并提示并发刷新和原子业务的一致性边界。161 收藏 -
Java ZipEntry 的 extra 是 ZIP 条目的原始扩展字节。本文说明如何读取、复制和设置这段元数据,并从长度限制、未知字段和审计记录三个角度避免转存时丢失或误解析。160 收藏 -
Java 虚拟线程 pinned 定位应先区分运行版本,再结合 JFR 事件与线程转储,记录时间窗口、调用栈和证据边界,避免把等待或同步关键字直接当成钉住结论。158 收藏 -
用 PreparedStatement.addBatch 收集多组参数,在明确的提交窗口中执行 JDBC 批量写入;本文同时说明自动提交、更新计数、BatchUpdateException 与失败回滚的处理边界。156 收藏 -
Java 的 IsoFields.WEEK_BASED_YEAR 遵循 ISO 周年规则,年末几天可能已经属于下一周年度。本文用 LocalDate 和 DateTimeFormatter 说明普通年份、ISO 周年、YYYY 与 yyyy 的区别,并给出报表分组和测试建议。156 收藏 -
Java MemorySegment 切片应分别检查 offset、newSize 和剩余字节数,核心条件是 newSize 不大于 byteSize() - offset,避免 offset + newSize 的 long 溢出。本文给出可复用封装,并区分空间越界、布局对齐与生命周期异常。155 收藏 -
Java 25 的 Stable Values 预览 API 可把手写 volatile、synchronized 和两次判空收敛为线程安全的一次性延迟初始化。本文说明改写方法、并发语义与采用边界。155 收藏 -
文章 · java教程 | 3星期前 | 并发 · 超时控制 · 异步编程 · Java教程 · CompletableFuture · java completablefuture TimeoutException orTimeout completeOnTimeout
completeOnTimeout 会在超时后用兜底值正常完成,orTimeout 会以 TimeoutException 异常完成。本文从业务语义、下游处理、共享 Future 与任务取消边界出发,给出选择方法和代码示例。152 收藏 -
Java ExecutorService 的 close 会先拒绝新任务,再等待已提交任务完成并终止线程池。本文用小实验区分 close、shutdown、shutdownNow 与 awaitTermination 的等待语义,并给出中断和超时处理写法。152 收藏 -
区分 JDBC executeBatch 与事务 commit,给出分块执行、最后提交一次的原创示例,解释批更新计数、回滚失败、提交结果未知和分块提交的业务恢复边界。150 收藏 -
Java Pattern.split 遇到连续、首尾分隔符时,关键在于 limit 参数:默认 limit=0 会丢弃尾部空字符串,负数 limit 才能保留完整字段。本文用静态边界说明和可复制示例讲清选择方法。149 收藏 -
说明 Java AES/GCM 中 AEAD 标签的单位、拆分与拼接方式,以及标签校验失败时的正确处理边界。147 收藏