java教程技术文章
-
Java MemorySegment 的 Arena 选择,关键看 native memory 是否跨线程、是否需要显式 close,以及对象应该存活多久。本文用对比表和代码说明 confined、shared、auto、global 的适用边界。394 收藏 -
介绍 Java ScopedValue 在方法调用链中传递请求上下文的写法,解释作用域绑定、嵌套重绑定、ThreadLocal 差异和结构化子任务继承。199 收藏 -
Java ExecutorService 的 shutdown 与 shutdownNow 不是温和版和强制版的简单替换。本文从排队任务、执行中任务和中断协作三个边界出发,给出两阶段退出代码与判断清单。399 收藏 -
用 ConcurrentHashMap.computeIfAbsent 实现按 key 的原子懒加载,说明 null、异常、递归更新和耗时初始化的处理边界。156 收藏 -
用 Java Files.find 组合普通文件、扩展名、大小和修改时间条件,掌握 maxDepth、BasicFileAttributes 以及 Stream的资源边界。 335 收藏 -
围绕Java BigDecimal的scale、RoundingMode、除法和UNNECESSARY检查,整理金额计算中可直接落地的舍入规则与边界处理方案。325 收藏 -
用 Java HttpClient 的 sendAsync、响应体处理器和定时取消组合,处理响应体迟迟不完成的超时、资源收束与异常边界。413 收藏 -
用CompletableFuture编排多个异步阶段时,应在阶段边界设置orTimeout,在异常出口区分TimeoutException与业务失败,并用handle统一结果,避免超时被吞掉或阻塞线程池。242 收藏 -
用 Java sealed interface 和 record 固定支付状态集合,结合 Java 21+ 的 switch 表达式减少非法状态组合,并在新增状态时获得编译期提醒。182 收藏 -
Java record 适合承载请求对象,但校验、默认值和集合可变性必须在紧凑构造器与工厂方法中分清边界。本文用一个请求 DTO 示例说明如何写出稳定的不可变输入。439 收藏 -
讲清Java并行Stream的遇到顺序、Collector并发特征和稳定结果设计,给出保序List、并发Map与带序号排序的选择方法。232 收藏 -
Java Stream 分组后保留每组首条记录,先用稳定排序定义首条,再用 toMap 合并函数保留旧值;复杂比较规则则集中到 Collector,并检查并行流、null 与重复键边界。265 收藏 -
Java虚拟线程支持ThreadLocal,但不适合用它缓存连接、大对象或可复用资源。本文说明状态隔离、remove清理、继承语义与迁移检查边界。451 收藏 -
Java虚拟线程适合承载大量等待型请求。本文用按任务创建、资源闸门和有界CPU执行器,说明阻塞I/O服务的线程模型与迁移边界。451 收藏 -
用一个三模块示例说明 Java ServiceLoader 如何通过 uses 与 provides with 在模块路径中注册并发现服务实现,同时给出编译、启动和空结果排查清单。378 收藏