java教程技术文章
-
ThreadLocal 在线程池中不会随着任务结束自动清空,工作线程复用会让下一个任务读到上一个任务留下的值。本文用 Java线程池 和可运行示例拆开 get、set、remove 的生命周期,给出 finally 清理、任务装饰和验收边界。153 收藏 -
文章 · java教程 | 3星期前 | Java教程 · java MethodHandles MethodHandle MethodType 参数适配器 WrongMethodTypeException
MethodHandle 真正难的不是找到方法,而是让调用点、目标句柄和参数适配器拥有可核对的 MethodType。本文用 filterArguments、explicitCastArguments 和 invokeExact 组合一个可运行的调用链,并说明 WrongMethodTypeException 应该在哪一层提前发现。497 收藏 -
用 Java HttpClient 做外部接口调用时,连接复用是否生效不能靠猜。本文从请求超时、sendAsync 调用链和响应体处理入手,给出可观察的验证方法与边界。387 收藏 -
Java 文本块适合保存多行模板,但代码缩进可能混入结果。本文用 String.stripIndent 拆开共同缩进、空行和制表符边界,并对比 indent 的换行处理,给出可运行的判断方法。163 收藏 -
批处理任务常常不是一次屏障就能解决:参与者会动态加入,也可能提前退出。本文用 Java Phaser 写一个三阶段批处理示例,核对 register、arrive、onAdvance 和 forceTermination 的职责与边界。449 收藏 -
Java ServiceLoader 适合把接口与实现解耦,但真正容易出错的是提供者发现、延迟实例化和单个坏实现对迭代器的影响。本文用一个 Formatter 服务拆开 uses、provides、Provider.type 与 Provider.get 的边界。265 收藏 -
文章 · java教程 | 3星期前 | 标准库 · Java · 异常处理 · java base64 padding IllegalArgumentException Base64.Decoder
用 Java Base64.Decoder 对比带 padding、无 padding 和非法尾部输入,解释 decode 的异常边界,并给出 String、byte[] 与 ByteBuffer 入口的选择方法。178 收藏 -
Java MethodHandles.Lookup 不是绕过权限的万能钥匙。本文用 privateLookupIn、findVirtual 和 lookupModes 拆开私有成员访问的调用链,并验证同模块、跨模块和模块未开放时的边界。376 收藏 -
用 Java EnumMap 保存订单状态转移规则,把合法迁移、非法迁移和默认分支放进一张可检查的状态表,避免订单流程散落在多处 if-else 中。282 收藏 -
文章 · java教程 | 3星期前 | 锁 · Java · 线程池 · 异常处理 · 并发编程 · java 线程中断 lockInterruptibly reentrantlock InterruptedException 业务回滚
订单库存服务里,普通 lock() 可能让取消任务一直卡在锁外。本文用 ReentrantLock.lockInterruptibly() 建立可中断的等待边界,并说明 InterruptedException 后如何恢复中断标记、避免半完成业务和验证回滚结果。129 收藏 -
Java Stream.toList() 与 Collectors.toList() 都能把流收集成 List,但返回列表的可变性、null 边界和类型推断并不相同。本文用可运行示例说明如何按后续操作选择写法。462 收藏 -
ClassValue 适合把与 Class 绑定的元数据懒加载并缓存起来。本文用一段可运行示例拆开 get、类型值计算、remove 的关系,并说明它与普通 Map 缓存、类卸载之间的边界。124 收藏 -
Java Stream.takeWhile 在有序流中取的是满足条件的最长前缀;放进并行流后,顺序约束会带来额外协调成本,而 unordered() 会改变结果语义。293 收藏 -
文章 · java教程 | 3星期前 | 并发 · Java教程 · CompletableFuture · java 异步任务 completablefuture TimeoutException orTimeout
CompletableFuture.orTimeout 只会让阶段在超时后以 TimeoutException 结束,并不会自动中断已经运行的底层任务。本文用可运行示例拆解超时、异常分支、cancel 和线程中断的边界,给出可验证的停止方案。311 收藏 -
Java 26 的 StructuredTaskScope 仍是预览 API。本文用两个并发子任务演示如何配置 timeout、调用 join 获取结果,并解释超时后取消与 close 等待线程结束的边界。493 收藏