本文介绍如何用JDK 28预览特性JEP 401的值类实现股票代码Ticker:以单个int字段存储,采用37字符字母表、每字符6位编码最多5个字符,零作填充;构造函数负责打包,toString负责解码。由于编码保持字符顺序,可直接比较int实现Comparable,并实现CharSequence。值类可被标量化和扁平数组存储,基准测试显示遍历约快1.4–1.5倍,但依赖JVM优化,需实测。
OpenJDK质量组呼吁FOSS项目使用JDK 28进行测试。JEP 401将值类作为预览特性引入,启用预览后,Integer、Optional、LocalDate等30个JDK类变为值类,带来==按值比较、无法同步、反射受限等兼容性变化,记录构造器也需遵循新规则。建议项目分别在禁用和启用预览两种模式下构建测试,并将问题反馈至valhalla-dev邮件列表。
JDK 28 将预览由 Oracle Java 团队推进的 JEP 401 值对象。
JDK 27进入Ramp-Down-Phase 1阶段,特性已可预览。Valhalla项目首个JEP(401)预计纳入JDK 28。Oracle鼓励开发者参与“Modern Java in the Wild”黑客松。另有文章探讨AOT与代理结合及利用GPU张量核心。
本期《Java注释月刊》汇总了Java和Kotlin领域的最新动态,包括AI在调度优化中的应用。Tom Cools在J-Spring大会上分享了相关演讲。此外,Java平台迎来了重要更新,JEP 401将整合到OpenJDK中。还介绍了即将举行的技术会议和社区活动,鼓励开发者参与讨论和学习。
Valhalla项目经过十二年发展,JEP 401(值类和值对象)以预览形式进入JDK 28。值对象移除身份,优化内存存储,提升性能。JDK 28是第一阶段,后续将引入非空类型和特化泛型,旨在解决Java内存布局与硬件脱节的问题。尽管取得进展,仍面临许多挑战和限制。
JEP 401《值类与对象》重新成为候选,Project Valhalla发布了新的早期访问版本,允许在Java中实验无身份值类。这些值类提升了可读性和维护性,并为Java运行时提供了更多优化空间。
Valhalla团队发布了早期访问的JDK构建,全面实现了JEP 401:值类和对象(预览)。值对象是仅包含最终字段且没有身份的类实例,使用值类可提升性能,JVM能够优化这些对象。用户可下载体验这一新特性。
完成下面两步后,将自动完成登录并继续当前操作。