java教程技术文章
-
文章 · java教程 | 1星期前 | Java · 异常处理 · 资源管理 · java try-with-resources AutoCloseable close suppressed exception
Java try-with-resources 多个资源时按声明顺序初始化、按相反顺序关闭;本文说明初始化失败、close 异常和 suppressed exception 的判断方法。501 收藏 -
Java Stream teeing 会把同一批元素交给两个下游收集器,再合并为一个结果。本文用订单统计、Optional 空结果和 groupingBy 分组案例说明适用场景与边界。500 收藏 -
Files.lines 返回的是带文件资源的 Stream。本文用可运行示例说明 try-with-resources 的关闭边界、异常路径和大文件读取时的验收方法,避免句柄长期占用。499 收藏 -
Java Stream 使用 groupingBy 分组时,默认结果 Map 的键顺序不能作为业务依据。通过 groupingBy 的 mapFactory 传入 LinkedHashMap::new,可以让分组键按首次出现顺序迭代,同时在有序输入和 toList 下保留每组元素顺序。本文还说明并行流、TreeMap 与排序的选择边界。498 收藏 -
文章 · java教程 | 2星期前 | Java教程 · java MethodHandles MethodHandle MethodType 参数适配器 WrongMethodTypeException
MethodHandle 真正难的不是找到方法,而是让调用点、目标句柄和参数适配器拥有可核对的 MethodType。本文用 filterArguments、explicitCastArguments 和 invokeExact 组合一个可运行的调用链,并说明 WrongMethodTypeException 应该在哪一层提前发现。497 收藏 -
解释 Java record 作为 HashMap 键时查询失败的原因,覆盖 equals、hashCode、一致性约束、可变字段与嵌套对象的排查方法。496 收藏 -
Java 模块系统中,exports 解决模块间公开类型的普通访问,opens 解决运行时深反射。本文用 module-info.java 和命令行参数对比两者边界,并说明如何用 to 限定目标模块。496 收藏 -
ArrayList.subList 返回的是由父列表支撑的视图。父列表一旦绕过该视图发生结构修改,视图语义就会失效,常见表现是 ConcurrentModificationException。本文用可运行示例拆开视图、结构修改、复制隔离和安全删除的边界。494 收藏 -
Java 26 的 StructuredTaskScope 仍是预览 API。本文用两个并发子任务演示如何配置 timeout、调用 join 获取结果,并解释超时后取消与 close 等待线程结束的边界。493 收藏 -
Java Semaphore 的公平参数不是性能开关,而是等待线程获取许可的排队契约。本文用批量调用限流场景说明 permits、公平与 tryAcquire 超时的边界,给出线程饥饿复现、可靠释放和验收清单。492 收藏 -
文章 · java教程 | 6天前 | 故障排查 · Java教程 · java SPI ServiceLoader ClassLoader module-info.java META-INF/services
Java ServiceLoader 找不到实现类时,优先检查 META-INF/services 文件是否进入 JAR、实现类全限定名是否正确,以及模块化项目的 uses/provides 声明。本文按 JAR、模块、ClassLoader 和初始化边界给出一套可执行排查清单。490 收藏 -
ServiceLoader找不到provider时,先核对META-INF/services文件或module-info.java声明,再检查类加载器、可见性和无参构造器。本文给出一套可复用的配置与排查方法。488 收藏 -
用一个订单事件解析故障,拆开 Java record pattern 在类型匹配、嵌套解构和 null 分支中的边界。486 收藏 -
线程池满载或进入关闭流程时,任务拒绝不应该只变成一条模糊异常。本文从一个有限队列的订单异步任务池出发,拆解拒绝处理器的错误语义、四种内置策略与调用方重试边界,并给出可验收的 Java 示例。484 收藏 -
Java HttpClient 的 sendAsync 收到 404 时,future 通常会正常完成,因为 404 是合法 HTTP 响应而非传输异常。本文用代码区分状态码、超时、连接失败和响应体处理错误。483 收藏