java教程技术文章
-
ArrayDeque 明确禁止 null,不是实现遗漏,而是为了让 pollFirst 的 null 返回值稳定表示“队列为空”。本文从 addLast、pollFirst 和空值哨兵的关系出发,说明如何改造入队契约并验证边界。180 收藏 -
Java 的 Pattern Matching for switch 遇到 null 时不会自动落到 default。本文从一段线上状态分派代码切入,说明 case null、类型模式、when 守卫和 default 的边界,并给出兼容旧写法的改造方式。194 收藏 -
Java 反射调用私有方法失败时,问题通常不在方法签名,而在 Lookup 的访问能力、目标类所在模块和包是否开放。本文用最小示例拆开查找模式、privateLookupIn 与模块边界。331 收藏 -
文章 · java教程 | 2个月前 | 正则表达式 · 字符串处理 · Java教程 · 异常排查 · Java正则 Matcher.matches Matcher.find group 字符串校验
Java Matcher.matches 要求整个输入完全匹配,find 则负责在输入中寻找下一段命中内容,group 用来读取捕获组。本文从订单号整串校验和日志字段提取两个场景出发,拆开三者的边界,并给出可复现的检查代码。134 收藏 -
Java 线程池准备退出时,close、shutdown 和 awaitTermination 到底怎么配合?本文用一个可验证的收尾流程说明停止接收任务、等待完成、记录未完成任务和超时兜底的边界。399 收藏 -
配置文件直接覆盖时,读线程可能看到半截内容。本文用 Java NIO 的临时文件、Files.move 和同目录改名实现一次完整替换,并说明 ATOMIC_MOVE 不可用时如何回退与核对结果。332 收藏 -
用 Java Spliterator 的 trySplit 做批量切分时,关键不是让任务越多越好,而是读懂估算值、切分结果与剩余区间,给并行流设置可验收的批次边界。100 收藏 -
Java 文件上传的内存风险不只来自文件大小,还和解析阈值、临时目录、并发量及清理结果有关。本文用一个可复核的 Multipart 流程,把配置、代码边界和验收指标串起来。255 收藏 -
用 Java Optional.or 串联多级备用查询,理解 Supplier 的惰性执行、返回类型和异常边界,并用最小示例完成验证。325 收藏 -
配置热加载不能只比较 lastModifiedTime。本文用 Java Files.readAttributes 读取 BasicFileAttributes,结合 fileKey、文件大小和时间戳,判断原文件被覆盖、替换或仅内容变化时应该怎么处理。414 收藏 -
用 DateTimeFormatterBuilder 兼容只有日期、带时间和带时区的输入,配合 parseBest、parseDefaulting 与 DateTimeParseException 做出稳定的类型判断和失败提示。338 收藏 -
用 Java Thread.Builder.OfVirtual 创建虚拟线程时,统一配置线程名和 UncaughtExceptionHandler,并通过可见日志验收异常是否真正被接住。331 收藏 -
Java 25 的一次性值容器是预览 API,适合表达只设置一次的懒加载结果。本文用并发配置缓存示例拆解 supplier 的至多一次成功计算、异常重试、预览开关和内存驻留边界,帮助你判断它何时比手写双重检查更合适。236 收藏 -
用 Java StructuredTaskScope 组织多个子任务,讲清部分成功收集、失败处理、关闭时机和资源回收的验收方法。437 收藏 -
从一个有界缓冲区的生产消费场景出发,说明 ReentrantLock 条件队列中 await、signal、signalAll 的配合方式,以及如何用队列状态和中断测试确认没有丢通知。468 收藏