java教程技术文章
-
Files.walk 的 maxDepth 从起始 Path 的深度 0 开始,所以当前目录始终会出现在结果中。本文用层级示例讲清深度、过滤、资源关闭和 API 选择。178 收藏 -
Java NIO FileChannel 共享 position 时,多个线程先定位再写入可能互相覆盖。本文用显式位置写入、区间分配和应用层锁,说明并发读写的安全边界。175 收藏 -
文章 · java教程 | 4天前 | 异常处理 · 并发编程 · Java教程 · 虚拟线程 · java 结构化并发 StructuredTaskScope JDK 26 子任务取消 Joiner
用当前 JDK 26 的 StructuredTaskScope 和 Joiner 实现子任务失败即取消,讲清 join、get、close 与中断响应边界。165 收藏 -
Java 虚拟线程进入 synchronized 并不等于一定发生 pinning。本文按 JDK 版本、JFR 事件和 tracePinnedThreads 堆栈,说明如何确认载体线程是否被占住,以及什么时候该换成 ReentrantLock。163 收藏 -
用 ConcurrentHashMap.computeIfAbsent 实现按 key 的原子懒加载,说明 null、异常、递归更新和耗时初始化的处理边界。156 收藏 -
Java Stream 收集 Map 时,按键唯一性、重复键策略和并行语义选择 toUnmodifiableMap、带合并函数的 toMap 或 toConcurrentMap,再用 Map.copyOf 发布不可变快照。155 收藏 -
Java MemorySegment 切片应分别检查 offset、newSize 和剩余字节数,核心条件是 newSize 不大于 byteSize() - offset,避免 offset + newSize 的 long 溢出。本文给出可复用封装,并区分空间越界、布局对齐与生命周期异常。155 收藏 -
Java 25 的 Stable Values 预览 API 可把手写 volatile、synchronized 和两次判空收敛为线程安全的一次性延迟初始化。本文说明改写方法、并发语义与采用边界。155 收藏 -
Java 21 的 SequencedMap 如何读取、删除和调整首尾键值?本文用 LinkedHashMap 说明 firstEntry、pollFirstEntry、putFirst 与 reversed 的用法和边界。152 收藏 -
文章 · java教程 | 1天前 | 并发 · 超时控制 · 异步编程 · Java教程 · CompletableFuture · java completablefuture TimeoutException orTimeout completeOnTimeout
completeOnTimeout 会在超时后用兜底值正常完成,orTimeout 会以 TimeoutException 异常完成。本文从业务语义、下游处理、共享 Future 与任务取消边界出发,给出选择方法和代码示例。152 收藏 -
Java 虚拟线程出现 carrier 被固定时,先按 JDK 版本判断 synchronized 是否属于 pinning 来源,再用 JFR 的 jdk.VirtualThreadPinned 和 jdk.tracePinnedThreads 定位阻塞栈,最后决定保留 synchronized、拆分临界区或改用 ReentrantLock。149 收藏 -
Java HttpClient 的 BodyHandlers.ofInputStream 适合边收边处理的大响应,但调用方必须消费或关闭返回的 InputStream。本文对比 ofString、ofByteArray、ofFile 和 ofInputStream,给出状态码判断、流复制与资源清理的安全写法。145 收藏 -
用 Java JFR EventStream 消费正在运行 JVM 的事件,本文从数据源、事件过滤、批次顺序到异步关闭,给出一套可落地的接入方式。145 收藏 -
Java JFR 可以用 jdk.MethodTiming 或 jdk.MethodTrace 配合 filter,只记录指定类或方法的执行事件;本文比较两种事件,给出 java 与 jcmd 的短窗口配置,并说明 threshold、stackTrace 和 ExecutionSample 的边界。139 收藏 -
围绕 Java Thread.Builder.OfVirtual 讲清 uncaughtExceptionHandler 的绑定位置、start/unstarted/factory 的继承边界,以及虚拟线程未捕获异常的日志兜底方式。139 收藏