java教程技术文章
-
用同一段 Java 线程实验复现 ReentrantReadWriteLock 非公平与公平策略下的写锁等待,解释读者持续到达时的排队边界,并给出可复查的选择方法。447 收藏 -
用同一段 Java 代码验证 String.lines 对 LF、CRLF、末尾换行和空字符串的处理,并说明什么时候应该改用 split 或 Scanner。272 收藏 -
ArrayList.subList 返回的是由父列表支撑的视图。父列表一旦绕过该视图发生结构修改,视图语义就会失效,常见表现是 ConcurrentModificationException。本文用可运行示例拆开视图、结构修改、复制隔离和安全删除的边界。494 收藏 -
用一个批次编号生成场景拆开 Java IntStream.iterate 的三参数重载,说明 seed 是否入流、hasNext 何时判断、next 是否会多执行,以及 limit 的边界。138 收藏 -
文章 · java教程 | 5天前 | Java · 版本管理 · 运行时检查 · Java Runtime.Version Java版本比较 feature interim update Java预览版本
用 Java Runtime.Version 解析并比较运行时版本,区分 feature、interim、update、patch 与 pre 预览标记,避免把字符串排序误当成版本判断。332 收藏 -
从一个用户查询场景拆开 Java Optional.orElseThrow 的默认异常、业务异常供应器、消息来源和空值边界,给出可回归的最小写法。165 收藏 -
用一个只允许从 0 变为 1 的状态位,拆开 Java VarHandle compareAndExchangeAcquire 的 witness 返回值、acquire 读取语义、失败分支和可验证测试。453 收藏 -
文章 · java教程 | 5天前 | 网络编程 · 并发 · Java · websocket · 故障排查 · java websocket httpclient CompletionStage sendClose onClose
Java HttpClient WebSocket 关闭时,sendClose 的 CompletionStage、Listener.onClose 和 onError 可能以不同顺序到达。本文用一个订阅客户端拆解正常关闭、异常断线、状态竞态与重连边界,给出可验证的收尾写法。162 收藏 -
周期任务看起来每分钟执行一次,实际却可能因单次执行超时、未捕获异常或重复创建调度器而失控。本文拆解固定频率调度下的任务不重叠、异常终止和恢复路径,给出可验证的 Java 写法。387 收藏 -
用一个订单报价查询示例说明 CompletableFuture.exceptionallyCompose 如何把异常恢复串成新的异步阶段,并核对 exceptionally、exceptionallyAsync、orTimeout 的边界。233 收藏 -
文章 · java教程 | 5天前 | 并发 · Java · 线程池 · 性能优化 · future · java 并发任务 future take poll CompletionService 完成队列
Java 完成队列会把已完成的 Future 放入队列,适合从多个并发任务中按完成先后消费结果。本文用一个最快结果优先的查询场景,比较 take 与 poll 的边界,并说明超时后如何取消剩余任务和安全关闭线程池。479 收藏 -
Java Matcher.find 会在区域内寻找下一个匹配片段,matches 则要求整个区域匹配。本文用日志过滤示例拆解两者的控制流、region 边界与 group 结果校验。320 收藏 -
Java Arrays.mismatch 会返回两个数组首个差异的相对索引,完全一致时返回 -1。本文从二进制快照校验出发,拆解整数组比较、范围偏移、前缀和长度边界,并给出可运行的验收代码。204 收藏 -
文章 · java教程 | 5天前 | 反射 · Java教程 · 方法句柄 · 类型适配 · 调用校验 · astype MethodType Java MethodHandle insertArguments invokeExact
Java MethodHandle 组合调用时,先用 insertArguments 固定可选参数,再用 asType 对齐 MethodType,最后用 invokeExact 做调用点验收。本文用订单格式化示例拆解参数位置、返回类型和 WrongMethodTypeException 边界。175 收藏 -
Java Optional.orElseGet 只有在 Optional 为空时才调用默认值供应器,适合避免缓存未命中后的无效计算。本文用配置读取示例拆解 orElse、orElseGet、orElseThrow 的求值和异常边界。162 收藏