Other goals of the stable values proposal include decoupling the creation of stable values from their initialization, without significant performance penalties; guaranteeing that stable values are initialized no more than once, even in multi-threaded programs; and enabling user code to safely enjoy constant-folding optimizations previously only available to JDK-internal code. It is not a goal of the proposal to enhance Java with a means to declare stable values or to alter the semantics of final fields.
In explaining the motivation for the stable values proposal, the JEP notes that Immutability has advantages, because an immutable object can be only in one state and therefore can be shared freely across multiple threads. The Java platform’s tool for managing immutability is final fields, but final fields have limitations, such as the need to be set eagerly, that restrict their applicability in many real-world applications.