java教程技术文章
-
文章 · java教程 | 2星期前 | 数据库 · 性能优化 · Java教程 · Optional · orElseGet · java 数据库查询 懒加载 optional supplier orElse orElseGet
Java Optional 的 orElse 会先计算兜底参数,即使主值已存在也可能触发数据库或远程调用。用订单展示接口复现这个问题,说明 orElseGet、Supplier、异常处理与测试边界。238 收藏 -
Webhook 接口只校验一个固定密钥还不够,泄露过的请求可能被再次发送。本文从零做一个 Java 签名校验小服务,用时间戳、HMAC-SHA256 和请求体摘要判断请求是否可信,并用 curl 验收通过、过期和篡改三种结果。215 收藏 -
Java 批量导出订单报表时,直接把查询结果收集到 List 再写 Excel,很容易在大数据量下触发 Full GC 甚至 OOM。本文从一次导出任务的架构改造出发,拆解数据库游标读取、分片文件写入、任务状态保存和 Range 续传的配合方式。200 收藏 -
文章 · java教程 | 2星期前 | 数据库 · 性能优化 · Java教程 · Optional · orElseGet · java 数据库查询 懒加载 optional supplier orElse orElseGet
Java Optional 的 orElse 会先计算兜底参数,即使主值已存在也可能触发数据库或远程调用。用订单展示接口复现这个问题,说明 orElseGet、Supplier、异常处理与测试边界。186 收藏 -
文章 · java教程 | 3星期前 | map · Java · 后端开发 · Collectors · Stream API · java Stream Collectors toMap 重复key Map合并
Java Stream 使用 Collectors.toMap 收集数据时,双参数重载遇到相同 key 会抛出 IllegalStateException。若业务允许把两条记录压成一条,应明确传入合并函数并定义保留旧值、覆盖新值或择优规则;若重复本身有业务意义,应改用 groupingBy 保留完整列表。并行流还要评估合并成本与是否真的需要并发 Map。159 收藏 -
文章 · java教程 | 2星期前 | 并发 · Java · CompletableFuture · Java CompletableFuture 任务取消 orTimeout completeOnTimeout
CompletableFuture 超时后,调用方返回并不等于后台任务停止。本文用一个可复现实验对比 orTimeout、completeOnTimeout 与 cancel,给出超时降级、线程中断和资源回收的检查方法。152 收藏 -
给 JTable 加双击打开详情时,别直接把 getSelectedRow 当成业务行号。用 MouseAdapter 判断双击和左键,用 rowAtPoint 排除空白区域,再把视图行转换为模型行,排序和筛选后仍能打开正确记录。135 收藏