java教程技术文章
-
Java Stream 收集 Map 时,按键唯一性、重复键策略和并行语义选择 toUnmodifiableMap、带合并函数的 toMap 或 toConcurrentMap,再用 Map.copyOf 发布不可变快照。155 收藏 -
文章 · java教程 | 1星期前 | 线程池 · 并发编程 · 故障排查 · Java教程 · ThreadLocal · java 线程池 Java线程池 threadlocal remove 线程复用
ThreadLocal 在线程池中不会随着任务结束自动清空,工作线程复用会让下一个任务读到上一个任务留下的值。本文用 Java线程池 和可运行示例拆开 get、set、remove 的生命周期,给出 finally 清理、任务装饰和验收边界。153 收藏 -
文章 · java教程 | 1个月前 | 并发 · Java · CompletableFuture · Java CompletableFuture 任务取消 orTimeout completeOnTimeout
CompletableFuture 超时后,调用方返回并不等于后台任务停止。本文用一个可复现实验对比 orTimeout、completeOnTimeout 与 cancel,给出超时降级、线程中断和资源回收的检查方法。152 收藏 -
Java Optional.orElse 会在参数求值阶段执行备用方法,即使 Optional 已经有值也无法跳过副作用。本文用订单缓存回源场景对比 orElse 与 orElseGet,说明调用时机、性能成本、空值边界和可验证的测试写法。150 收藏 -
文章 · java教程 | 3星期前 | 密码学 · Java教程 · Java 25 · HKDF · 密钥派生 · Java 25 KDF Key Derivation Function API HKDF JEP 510 密钥派生
Java 25 新增 Key Derivation Function API,可用 HKDF 从已有密钥材料派生用途隔离的子密钥。本文用可运行示例说明 Extract、Expand、salt、info 和测试验收边界,避免把 KDF 当成加密或哈希替代品。147 收藏 -
通过一个接口任务堆积案例,讲清 Java 线程池核心参数、有界队列、拒绝策略和监控指标,帮助服务避免内存暴涨和请求雪崩。143 收藏 -
用 Java 25 的 java.lang.classfile 读取 class 文件中的方法签名,解释 ClassModel 遍历、按需解析、版本检查和 verify 验收边界,并给出可直接运行的最小示例。143 收藏 -
Java 25 的 JFR CPU-Time Profiling 可在 Linux 上按 CPU 时间采样线程,并通过 jdk.CPUTimeSample 与 jdk.CPUTimeSamplesLost 观察热点和丢样。本文用 jfr、jcmd 与 throttle 参数建立一次可复查的定位流程。142 收藏 -
用一个批次编号生成场景拆开 Java IntStream.iterate 的三参数重载,说明 seed 是否入流、hasNext 何时判断、next 是否会多执行,以及 limit 的边界。138 收藏 -
Java 服务频繁 Full GC 时,先看老年代占用、停顿时间和业务错误,再抓取堆信息与线程状态。不要一上来放大堆或重启,优先保留证据、控制流量、回滚可疑发布,并用告警恢复情况确认处理结果。136 收藏 -
Java record 的 List 仍能修改,是因为 final 只固定集合引用而不冻结集合内容。本文用引用链说明原因,并比较直接保存、只读视图与 List.copyOf 快照的适用场景。136 收藏 -
给 JTable 加双击打开详情时,别直接把 getSelectedRow 当成业务行号。用 MouseAdapter 判断双击和左键,用 rowAtPoint 排除空白区域,再把视图行转换为模型行,排序和筛选后仍能打开正确记录。135 收藏 -
文章 · 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 收藏 -
Spring 默认通过 AOP 代理处理 @Transactional,类内 this 自调用会绕过代理。本文用调用路径、拆分服务、代理引用和回滚验证说明如何定位并修复事务边界问题。129 收藏