java教程技术文章
-
Java 泛型 record pattern 会先根据选择器的静态类型推断记录类型参数,再把适配后的组件类型交给 var。本文用 Box、显式写法和嵌套模式说明推断链、选型方法及泛型擦除边界。 357 收藏 -
Java 21 的 List.reversed() 返回反向有序视图,不是副本。本文用 ArrayList 和只读 List 对比说明 set、remove、addFirst 是否会写回原集合,以及什么时候必须显式复制。105 收藏 -
Java ScopedValue 的内层绑定只在嵌套动态作用域中遮蔽外层值,退出后自动恢复。本文用 where、run、get、isBound 和 orElse 说明嵌套读取、异常边界、线程继承与不可变上下文的使用方法。104 收藏 -
文章 · java教程 | 3星期前 | Java · 并发编程 · 虚拟线程 · Java虚拟线程 ForkJoinPool Virtual Threads 调度器并行度 jdk.virtualThreadScheduler.parallelism
Java 虚拟线程调度器可通过 jdk.virtualThreadScheduler.parallelism 单独设置承载平台线程数。本文说明启动参数、验证示例、与 commonPool 及 maxPoolSize 的区别,并给出调优判断方法。459 收藏 -
Java 25 的 StructuredTaskScope 可以在 open 时通过 withTimeout 配置整个作用域的统一超时。本文用一个双子任务示例说明超时起点、TimeoutException、取消中断和 close 等待边界,并补充旧版 joinUntil 的差异。118 收藏 -
Java Primitive Patterns 遇到 int 转 byte 等数值窄化时,不会把信息损失静默变成成功匹配。本文用精确转换、兜底分支和旧 JDK 方案说明如何处理。389 收藏 -
Java 25 的 Stable Values 预览 API 可把手写 volatile、synchronized 和两次判空收敛为线程安全的一次性延迟初始化。本文说明改写方法、并发语义与采用边界。155 收藏 -
Java Vector API 处理非整数倍数组长度时,用 VectorSpecies.indexInRange 生成尾部 Mask,安全完成加载、计算和写回,并对比 loopBound 加标量尾循环的适用边界。358 收藏 -
Java Compact Object Headers 将 HotSpot 64 位对象头从传统的 mark word/class word 布局收敛到 64 位,本文解释压缩类指针、锁、GC 转发、JDK 25/27 启用方式与迁移边界。293 收藏 -
用 JDK 22 Linker API 调用 C 标准库 strlen,讲清符号查找、函数签名映射、Arena 生命周期、本地访问授权与生产边界。486 收藏 -
JEP 465 撤回后,已有 STR 与自定义模板处理器代码应按用途迁移到稳定 API,并保留格式化、国际化与安全边界。123 收藏 -
JDK 25 的 import module 可一次引入模块已导出包中的 public 顶层类型,并遵循更具体导入优先、同名冲突显式消歧等规则。299 收藏 -
Java 自定义 JFR Event 的提交条件应分成 isEnabled、shouldCommit 和 commit 三层:先确认有活动录制,再在 end 后判断时长阈值,最后只提交值得保留的事件。325 收藏 -
Java ClassValue 适合替代按 Class 做全局强引用缓存,但它不是类加载器泄漏的万能修复。本文从引用路径、computeValue、remove 和卸载检查四个角度说明正确用法与边界。464 收藏 -
Java MemorySegment 切片应分别检查 offset、newSize 和剩余字节数,核心条件是 newSize 不大于 byteSize() - offset,避免 offset + newSize 的 long 溢出。本文给出可复用封装,并区分空间越界、布局对齐与生命周期异常。155 收藏