java教程技术文章
-
用一个可复查的缓存刷新场景,说明 Java ReentrantReadWriteLock 从写锁降级到读锁的正确顺序、异常释放边界与验证方法。381 收藏 -
文章 · java教程 | 2天前 | Java教程 · MethodHandles · 模块系统 · java 私有成员 privateLookupIn MethodHandles.Lookup 模块边界
Java MethodHandles.Lookup 不是绕过权限的万能钥匙。本文用 privateLookupIn、findVirtual 和 lookupModes 拆开私有成员访问的调用链,并验证同模块、跨模块和模块未开放时的边界。376 收藏 -
Java 25 正式加入 import module 声明,可以按模块导入其导出的顶层类型,减少多个通配包导入。本文用 java.base 示例说明可见范围、命名冲突和 classpath 场景下的边界。373 收藏 -
用 Java ModuleLayer 为插件建立独立模块层,串起 Configuration、类加载器和查找入口,并说明解析失败、类加载冲突与卸载边界。341 收藏 -
文章 · java教程 | 7小时前 | Java · 版本管理 · 运行时检查 · Java Runtime.Version Java版本比较 feature interim update Java预览版本
用 Java Runtime.Version 解析并比较运行时版本,区分 feature、interim、update、patch 与 pre 预览标记,避免把字符串排序误当成版本判断。332 收藏 -
Java Matcher.find 会在区域内寻找下一个匹配片段,matches 则要求整个区域匹配。本文用日志过滤示例拆解两者的控制流、region 边界与 group 结果校验。320 收藏 -
文章 · java教程 | 2天前 | 并发 · Java教程 · CompletableFuture · 超时处理 · java 异步任务 completablefuture TimeoutException orTimeout
CompletableFuture.orTimeout 只会让阶段在超时后以 TimeoutException 结束,并不会自动中断已经运行的底层任务。本文用可运行示例拆解超时、异常分支、cancel 和线程中断的边界,给出可验证的停止方案。311 收藏 -
Java Stream.takeWhile 在有序流中取的是满足条件的最长前缀;放进并行流后,顺序约束会带来额外协调成本,而 unordered() 会改变结果语义。293 收藏 -
用一个等待外部资源的 Java 并行任务说明 ForkJoinPool.managedBlock 的补偿线程机制、ManagedBlocker 契约与线程池关闭验收。288 收藏 -
Java 21 引入 SequencedMap 后,可以用统一的首尾操作和 reversed() 视图处理有明确遇见顺序的键值集合。本文用 LinkedHashMap 演示 firstEntry、lastEntry、putFirst、putLast 与倒序遍历的差异,并标出 Java 17 及更早版本的兼容边界。287 收藏 -
Java HttpClient 的 BodyHandlers.ofLines 返回的是流式 Stream,读取完毕或提前停止都要明确关闭。本文从响应接收、行消费到资源释放拆开调用链,给出 try-with-resources 写法和提前终止时的边界。 283 收藏 -
用 Java EnumMap 保存订单状态转移规则,把合法迁移、非法迁移和默认分支放进一张可检查的状态表,避免订单流程散落在多处 if-else 中。282 收藏 -
Java Flow.Publisher 的背压不是一个抽象口号:Subscriber 通过 Subscription.request 控制批次,数据库写入完成后再补请求,取消时沿链路停止。本文用最小示例讲清请求量、批处理和取消边界。279 收藏 -
用同一段 Java 代码验证 String.lines 对 LF、CRLF、末尾换行和空字符串的处理,并说明什么时候应该改用 split 或 Scanner。272 收藏 -
Java ServiceLoader 适合把接口与实现解耦,但真正容易出错的是提供者发现、延迟实例化和单个坏实现对迭代器的影响。本文用一个 Formatter 服务拆开 uses、provides、Provider.type 与 Provider.get 的边界。265 收藏