java教程技术文章
-
虚拟线程适合大量阻塞型任务,但它不会自动增加数据库连接等稀缺资源。本文从读者提问出发,说明虚拟线程不该再被线程池复用,连接池本身的并发边界,以及何时应使用 Semaphore。430 收藏 -
文章 · java教程 | 12小时前 | Java · 后端开发 · 批处理 · Stream API · JDK 24 · Gatherers · 分组 Java 24 Stream Gatherers windowFixed Stream.gather 批量接口
批量同步订单或调用外部接口时,手写 subList 循环容易把边界、尾批和调用节奏揉在一起。Java 24 正式提供 Stream Gatherers 后,可以用 gather(windowFixed(n)) 把元素按固定数量组成批次,再把网络调用放在流外逐批处理。本文给出最小写法、尾批语义、旧方案对比和 JDK 版本边界。411 收藏 -
文章 · java教程 | 1天前 | 调试 · 异常处理 · Java教程 · try-with-resources · AutoCloseable · 文件关闭 AutoCloseable Java教程 Java try-with-resources suppressed exceptions
Java 的 try-with-resources 会自动关闭资源;当业务代码和 close 同时抛异常时,关闭异常会作为 suppressed exception 保留。本文给出排查文件、JDBC 和网络资源关闭问题的检查清单。327 收藏 -
文章 · java教程 | 13小时前 | Java · 文件上传 · spring · nio · 后端开发 · java 文件上传 临时文件 数据清理 MultipartFile Files.move
处理 MultipartFile 时,不要把客户端文件名直接拼进持久路径。把上传数据按校验、临时落盘、确认移动和失败清理分段处理,既能缩小异常影响范围,也能避免临时目录长期堆积。314 收藏 -
文章 · java教程 | 1天前 | map · Java · 后端开发 · Collectors · Stream API · java Stream Collectors toMap 重复key Map合并
Java Stream 使用 Collectors.toMap 收集数据时,双参数重载遇到相同 key 会抛出 IllegalStateException。若业务允许把两条记录压成一条,应明确传入合并函数并定义保留旧值、覆盖新值或择优规则;若重复本身有业务意义,应改用 groupingBy 保留完整列表。并行流还要评估合并成本与是否真的需要并发 Map。159 收藏 -
给 JTable 加双击打开详情时,别直接把 getSelectedRow 当成业务行号。用 MouseAdapter 判断双击和左键,用 rowAtPoint 排除空白区域,再把视图行转换为模型行,排序和筛选后仍能打开正确记录。135 收藏