JEP 草案:计算常量ComputedConstant
💡
原文中文,约1700字,阅读约需4分钟。
📝
内容提要
计算常量是一种最多初始化一次的保持器对象,它在第一次访问时被初始化。它提供了单例的另一种方式,并且具有性能、安全和灵活性的优势。计算常量的目标是将其初始化与包含的类或对象的初始化分离,并提供简单直观的API。计算常量的引入是为了解决final字段的限制,它们必须尽早设置,并且初始化时间固定。计算常量是一个预览功能,需要使用特定的JVM标志启用。在代码实现中,计算常量被表示为ComputedConstant对象,通过值提供者创建,并且保证每个实例最多调用一次。
🎯
关键要点
- 计算常量是一种最多初始化一次的保持器对象,在第一次访问时被初始化。
- 计算常量提供了单例的另一种方式,具有性能、安全和灵活性的优势。
- 计算常量的目标是将其初始化与包含的类或对象的初始化分离。
- 计算常量是一个预览功能,需要使用特定的JVM标志启用。
- 计算常量支持常量折叠优化和数据流依赖性。
- 计算常量减少了静态初始化程序代码和字段初始化的数量。
- 计算常量在多线程环境中保持完整性和一致性。
- final字段的限制包括必须尽早设置和初始化时间固定。
- 计算常量的实现通过ComputedConstant对象表示,使用值提供者创建。
- ComputedConstant实例保证每个实例最多调用一次,提供更简单的API。
➡️