Java 26: o que são Lazy Constants e por que elas aposentam o double-checked locking (JEP 526)
O Java 26 trouxe o JEP 526: Lazy Constants. Uma forma nativa e thread-safe de inicializar um valor uma única vez, só quando ele for usado de verdade. Aquele synchronized com double-checked locking ...

Source: DEV Community
O Java 26 trouxe o JEP 526: Lazy Constants. Uma forma nativa e thread-safe de inicializar um valor uma única vez, só quando ele for usado de verdade. Aquele synchronized com double-checked locking que você escreveu há anos? Agora tem alternativa de primeira classe. O que é o JEP 526 do Java 26? O JEP 526 traz a classe java.lang.LazyConstant<T>: um container que guarda um valor imutável, inicializado no máximo uma vez. No Java 25, a feature se chamava "Stable Values" (JEP 502). No Java 26, foi renomeada, ganhou uma API mais simples e entrou em second preview. O problema que ela resolve é antigo: campos final garantem imutabilidade, mas exigem inicialização imediata. Campos não-final permitem inicialização tardia, mas perdem as garantias de concorrência. LazyConstant junta os dois mundos: você inicializa quando quiser, mas só uma vez, com a mesma segurança de um final. Por que o double-checked locking existe e qual é o problema? Todo dev Java já escreveu algo assim: public class Me