java教程技术文章
-
Java 22 通过 JEP 456 正式支持未命名变量与未命名模式,用下划线忽略不需要的值。本文从 switch、record 模式和异常参数三个场景说明作用域边界,并给出 javac 编译验收方法。237 收藏 -
Java 25 的一次性值容器是预览 API,适合表达只设置一次的懒加载结果。本文用并发配置缓存示例拆解 supplier 的至多一次成功计算、异常重试、预览开关和内存驻留边界,帮助你判断它何时比手写双重检查更合适。236 收藏 -
讲清 Java 虚拟线程改造中任务并发与数据库连接的不同边界,并用连接池、超时和背压保护下游资源。236 收藏 -
Java 24 的 Gatherers.fold 适合没有合并器、且结果依赖输入顺序的聚合。本文用分段账单摘要拆解状态边界、空流结果与并行流验收,避免把 fold 当成可随意并行的 reduce。233 收藏 -
用一个订单报价查询示例说明 CompletableFuture.exceptionallyCompose 如何把异常恢复串成新的异步阶段,并核对 exceptionally、exceptionallyAsync、orTimeout 的边界。233 收藏 -
讲清Java并行Stream的遇到顺序、Collector并发特征和稳定结果设计,给出保序List、并发Map与带序号排序的选择方法。232 收藏 -
Java NIO WatchService 适合监听目录变化,但它不是变更日志:事件可能合并、丢弃或因 WatchKey 失效而停止通知。本文从注册目录、处理事件、识别 OVERFLOW、去重和全量重扫几个边界,给出一套可复查的实现方式。231 收藏 -
Java 21 的 SequencedMap 可以用 reversed() 得到反向视图。本文用 LinkedHashMap 说明如何成对遍历键值、验证首尾顺序,并解释视图、快照和兼容性边界。229 收藏 -
Java JDBC 处理 SQLException 时,先用 SQLState 做跨驱动的错误分类,再用 vendorCode 映射厂商细节,结合异常类型和异常链决定重试、降级与告警。229 收藏 -
从异常中的模块与包名入手,区分 exports、opens 和读取关系,给出 Java 反射 setAccessible 失败的诊断代码与最小修复方案。227 收藏 -
JTable 开启排序后,复选框状态容易因为视图行号和模型行号混用而错位。本文用一个可运行的 Swing 表格拆开索引转换、状态保存、刷新重建和验收方法。226 收藏 -
Java HttpClient 没有直接的 multipart 表单构造器,需要自己处理 boundary、CRLF、文件段和长度。本文给出可计算长度的拼接方案,并说明大文件如何改用可重复创建的流式请求体。225 收藏 -
Java 25 的 ScopedValue 适合在明确的动态作用域内单向传递不可变上下文;ThreadLocal 仍适合可变的线程本地状态,但在线程池任务结束时必须 remove。本文用最小代码和选择表说明两者在任务边界、嵌套绑定和子任务继承上的区别。225 收藏 -
Java record pattern 如何拆解嵌套数据?本文用订单、地址和金额示例说明 instanceof、switch、null 边界及泛型嵌套模式的写法。223 收藏 -
Spring AI 2.0 的 ToolSearchToolCallingAdvisor 会按会话索引工具。本文从工具全量暴露的排查现场出发,说明 session ID、工具索引和 ChatClient 之间的边界,并给出 Java 配置示例与核对清单。221 收藏