java教程技术文章
-
Java NIO WatchService 适合监听目录变化,但它不是变更日志:事件可能合并、丢弃或因 WatchKey 失效而停止通知。本文从注册目录、处理事件、识别 OVERFLOW、去重和全量重扫几个边界,给出一套可复查的实现方式。231 收藏 -
JTable 开启排序后,复选框状态容易因为视图行号和模型行号混用而错位。本文用一个可运行的 Swing 表格拆开索引转换、状态保存、刷新重建和验收方法。226 收藏 -
用 Java 25 的 jdk.incubator.vector.FloatVector 改写批量 float 计算,讲清 preferred species、lane 宽度、尾部掩码、模块参数和标量回退的验收方法。211 收藏 -
文章 · java教程 | 3天前 | Java · 线程池 · 异步编程 · CompletableFuture · 超时处理 · 线程池 Java CompletableFuture 异步超时 orTimeout completeOnTimeout
Java CompletableFuture 的 orTimeout 会让原任务以 TimeoutException 失败,completeOnTimeout 则把超时转换为备用结果。本文从订单查询的超时现场出发,拆开两种语义、异常回收与线程池验收边界。200 收藏 -
文章 · java教程 | 1天前 | Java · Switch · Java 21 · 类型匹配 · java case null Pattern Matching for switch 类型模式
Java 的 Pattern Matching for switch 遇到 null 时不会自动落到 default。本文从一段线上状态分派代码切入,说明 case null、类型模式、when 守卫和 default 的边界,并给出兼容旧写法的改造方式。194 收藏 -
ArrayDeque 明确禁止 null,不是实现遗漏,而是为了让 pollFirst 的 null 返回值稳定表示“队列为空”。本文从 addLast、pollFirst 和空值哨兵的关系出发,说明如何改造入队契约并验证边界。180 收藏 -
Java 服务上传大文件时,不要把整文件一次性读进内存。本文用 AWS SDK for Java 2.x 的异步客户端拆解分片大小、并发度、失败重试和中止清理,给出一条可落地的选择路径。175 收藏 -
文章 · java教程 | 3天前 | Java教程 · 空值处理 · Optional · 性能边界 · 异常排查 · 空值处理 orElse orElseGet Java Optional orElseThrow
Java Optional 的 orElse 会提前计算默认值,orElseGet 只在空值时执行,orElseThrow 则把缺失数据转成明确异常。本文用订单查询和配置读取场景拆解三种写法的执行边界,并给出可复现的验收测试。168 收藏 -
批量导入时,HashMap 的扩容可能把本来平滑的写入变成一段明显停顿。本文从容量计算、阈值变化和并发边界三个方面还原问题,并给出可验证的初始化与替代方案。156 收藏 -
文章 · java教程 | 1天前 | 正则表达式 · 字符串处理 · Java教程 · 异常排查 · Matcher · Java正则 Matcher.matches Matcher.find group 字符串校验
Java Matcher.matches 要求整个输入完全匹配,find 则负责在输入中寻找下一段命中内容,group 用来读取捕获组。本文从订单号整串校验和日志字段提取两个场景出发,拆开三者的边界,并给出可复现的检查代码。134 收藏 -
文章 · java教程 | 1小时前 | 锁 · Java · 线程池 · 异常处理 · 并发编程 · java 线程中断 lockInterruptibly reentrantlock InterruptedException 业务回滚
订单库存服务里,普通 lock() 可能让取消任务一直卡在锁外。本文用 ReentrantLock.lockInterruptibly() 建立可中断的等待边界,并说明 InterruptedException 后如何恢复中断标记、避免半完成业务和验证回滚结果。129 收藏 -
ClassValue 适合把与 Class 绑定的元数据懒加载并缓存起来。本文用一段可运行示例拆开 get、类型值计算、remove 的关系,并说明它与普通 Map 缓存、类卸载之间的边界。124 收藏 -
文章 · java教程 | 3天前 | locale · 国际化 · Java教程 · 输入校验 · Java 25 · 国际化 locale Java Locale.Builder BCP 47 语言标签
用 Java Locale.Builder 校验用户提交的 BCP 47 语言标签,区分 setLanguageTag 与 forLanguageTag 的异常和截断行为,并给出回退语言、展示语言与测试验收方案。120 收藏 -
Java Pattern.asMatchPredicate 可以把完整字符串匹配封装成 Predicate,再交给 Stream.anyMatch 短路查找。本文用订单号校验场景对比 asMatchPredicate 与 asPredicate,说明 null、空流和正则边界。118 收藏 -
Java 批量校验邮箱、手机号等字段时,反复编译 Pattern 和把 Matcher 跨线程复用,都会让接口延迟抬头。本文从 Pattern、Matcher 的职责边界出发,对比错误写法与复用写法,再用 JMH 风格基准和业务验收检查性能收益。102 收藏