体验 JEP 401 值类和对象
💡
原文英文,约1100词,阅读约需4分钟。
📝
内容提要
Valhalla团队发布了早期访问的JDK构建,全面实现了JEP 401:值类和对象(预览)。值对象是仅包含最终字段且没有身份的类实例,使用值类可提升性能,JVM能够优化这些对象。用户可下载体验这一新特性。
🎯
关键要点
- Valhalla团队发布了早期访问的JDK构建,全面实现了JEP 401:值类和对象(预览)。
- 值对象是仅包含最终字段且没有身份的类实例,使用值类可提升性能。
- 用户可以下载体验这一新特性,访问地址为jdk.java.net/valhalla。
- 在JShell中,可以使用Objects.hasIdentity来区分值对象和常规身份对象。
- 值对象在大多数方面表现得像身份对象,但==运算符无法判断两个值对象是否相同。
- 可以使用value关键字声明自己的值类,许多记录声明都是值类的良好候选。
- 声明值类的一个原因是语义上的简化,避免不必要的复杂性。
- JVM可以以无法对常规对象进行的方式优化值对象,例如通过堆扁平化技术。
- 通过使用值对象,可以在性能关键的计算中实现显著的新优化。
- 这是测试版软件,可能存在一些错误和意外的性能问题,鼓励用户下载并反馈。
➡️