java教程技术文章
-
文章 · java教程 | 3小时前 | 标准库 · Java · 异常处理 · 数据编码 · java base64 padding IllegalArgumentException Base64.Decoder
用 Java Base64.Decoder 对比带 padding、无 padding 和非法尾部输入,解释 decode 的异常边界,并给出 String、byte[] 与 ByteBuffer 入口的选择方法。178 收藏 -
文章 · java教程 | 4小时前 | Java教程 · MethodHandles · 模块系统 · java 私有成员 privateLookupIn MethodHandles.Lookup 模块边界
Java MethodHandles.Lookup 不是绕过权限的万能钥匙。本文用 privateLookupIn、findVirtual 和 lookupModes 拆开私有成员访问的调用链,并验证同模块、跨模块和模块未开放时的边界。376 收藏 -
用 Java EnumMap 保存订单状态转移规则,把合法迁移、非法迁移和默认分支放进一张可检查的状态表,避免订单流程散落在多处 if-else 中。282 收藏 -
文章 · java教程 | 8小时前 | 锁 · 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教程 | 11小时前 | 并发 · Java教程 · CompletableFuture · 超时处理 · java 异步任务 completablefuture TimeoutException orTimeout
CompletableFuture.orTimeout 只会让阶段在超时后以 TimeoutException 结束,并不会自动中断已经运行的底层任务。本文用可运行示例拆解超时、异常分支、cancel 和线程中断的边界,给出可验证的停止方案。311 收藏 -
Java 26 的 StructuredTaskScope 仍是预览 API。本文用两个并发子任务演示如何配置 timeout、调用 join 获取结果,并解释超时后取消与 close 等待线程结束的边界。493 收藏 -
文章 · java教程 | 14小时前 | Java · 并发编程 · 线程中断 · java lockInterruptibly reentrantlock InterruptedException
用一个可复现的锁竞争场景,说明 Java ReentrantLock.lockInterruptibly 的等待、中断、异常清理和 finally 释放顺序,避免把线程中断误写成强制解锁。422 收藏 -
Java DateTimeFormatter 的格式化结果可能随默认 Locale 改变。本文用固定模式、Locale.ROOT 和本地化样式对照,说明如何稳定生成接口、日志和用户界面的日期文本。252 收藏 -
Java 24 的 Gatherers.fold 适合没有合并器、且结果依赖输入顺序的聚合。本文用分段账单摘要拆解状态边界、空流结果与并行流验收,避免把 fold 当成可随意并行的 reduce。233 收藏 -
Java Pattern.asMatchPredicate 可以把完整字符串匹配封装成 Predicate,再交给 Stream.anyMatch 短路查找。本文用订单号校验场景对比 asMatchPredicate 与 asPredicate,说明 null、空流和正则边界。118 收藏 -
Java Flow.Publisher 的背压不是一个抽象口号:Subscriber 通过 Subscription.request 控制批次,数据库写入完成后再补请求,取消时沿链路停止。本文用最小示例讲清请求量、批处理和取消边界。279 收藏 -
Java 服务上传大文件时,不要把整文件一次性读进内存。本文用 AWS SDK for Java 2.x 的异步客户端拆解分片大小、并发度、失败重试和中止清理,给出一条可落地的选择路径。175 收藏