java教程技术文章
-
用 Java Optional.or 串联多级备用查询,理解 Supplier 的惰性执行、返回类型和异常边界,并用最小示例完成验证。325 收藏 -
用订单金额计算场景讲清楚 Java 中 double 处理金额为什么容易出错,以及如何用 BigDecimal 的字符串构造、固定小数位和 RoundingMode 做出稳定的金额计算流程。324 收藏 -
文章 · java教程 | 22小时前 | 并发编程 · Java教程 · ConcurrentHashMap · java concurrenthashmap 并发map computeIfAbsent 递归更新
ConcurrentHashMap.computeIfAbsent 的映射函数不能递归更新同一键。本文解释原子计算边界、IllegalStateException 的成因,并用局部解析状态加 putIfAbsent 演示如何拆分递归计算与共享缓存发布。323 收藏 -
Java Matcher.find 会在区域内寻找下一个匹配片段,matches 则要求整个区域匹配。本文用日志过滤示例拆解两者的控制流、region 边界与 group 结果校验。320 收藏 -
文章 · java教程 | 1星期前 | Java · 序列化 · 反序列化 · jdk · 安全编程 · java ObjectInputStream ObjectInputFilter 反序列化过滤 序列化安全
Java 反序列化过滤不应只写一条拒绝规则,还要同时限制允许的类型、对象图深度、引用数量和输入字节数。本文用 ObjectInputFilter 说明白名单、边界值与异常验收。317 收藏 -
文章 · java教程 | 3星期前 | Java教程 · Java 25 · 语言特性 · 模式匹配 · 代码实践 · Switch instanceof Java 25 原始类型模式 JEP 507 when
Java 25 的 JEP 507 第三次预览让原始类型进入 instanceof、switch 和模式匹配。本文用数值路由场景拆解 float、double、int 模式与 when 守卫,说明数值提升、null 边界、预览参数和升级验收方法。315 收藏 -
文章 · java教程 | 2星期前 | Java · Record · 构造器 · 不变量 · 异常契约 · 参数校验 Java教程 Java record compact constructor 时间区间
Java record 的 compact constructor 适合把开始时间早于结束时间、状态与时间范围匹配等跨字段规则集中校验。本文用预约时间段说明校验顺序、异常类型与测试验收边界。315 收藏 -
文章 · java教程 | 1个月前 | Java · 文件上传 · spring · nio · 后端开发 · java 文件上传 临时文件 数据清理 MultipartFile Files.move
处理 MultipartFile 时,不要把客户端文件名直接拼进持久路径。把上传数据按校验、临时落盘、确认移动和失败清理分段处理,既能缩小异常影响范围,也能避免临时目录长期堆积。314 收藏 -
在 Swing 组件体系里,JFrame 可以说是最常见的一类容器。它本身就是一个独立的顶级容器,也就是通常所说的窗口,因此不能再嵌套到其他容器内部。JFrame 具备通用窗口应有的基础能力,比如最小化窗口、设置窗口尺寸等。下面就结合一个案例,具体看看 JFrame 的实际使用效果,如文件1所示。313 收藏 -
文章 · java教程 | 13小时前 | 序列化 · Record · Java教程 · 兼容性 · java Serializable ObjectInputStream ObjectOutputStream record
Java record 实现 Serializable 后,序列化状态由 record 组件决定,反序列化会调用规范构造器;普通可序列化类的重建路径和自定义钩子不同。本文用最小示例划清两者边界。313 收藏 -
文章 · java教程 | 1星期前 | 并发 · Java教程 · CompletableFuture · 超时处理 · java 异步任务 completablefuture TimeoutException orTimeout
CompletableFuture.orTimeout 只会让阶段在超时后以 TimeoutException 结束,并不会自动中断已经运行的底层任务。本文用可运行示例拆解超时、异常分支、cancel 和线程中断的边界,给出可验证的停止方案。311 收藏 -
Java 读取大文件时,优先用 Files.lines 惰性产生 Stream,显式指定字符集,并用 try-with-resources 关闭文件流,避免一次性加载和资源泄漏。 311 收藏 -
Java 多字段排序不要在比较器里直接调用可能为空字段的 compareTo。用 nullsFirst 或 nullsLast 包住每个字段的 Comparator,再用 comparing 和 thenComparing 组合;降序时只反转非空值顺序,避免 null 被一起翻到前面。310 收藏 -
文章 · java教程 | 1个月前 | Java · HTTP · ndjson · httpclient · 性能实践 · 流式读取 背压 Java HttpClient NDJSON BodyHandlers.ofLines
Java HttpClient 读取 NDJSON 时,先用 BodyHandlers.ofLines() 把响应转成逐行流,再在消费端做字段校验、数量上限和超时收尾。本文用订单事件流说明连接关闭、异常中断与消费速度不匹配时的处理边界。309 收藏 -
JDK 26 开始,深反射修改 final 字段会给出警告。本文用 debug、JFR 和 deny 预演定位真正的库依赖,并划清临时放行与长期修复边界。309 收藏