Java’s main tool for managing immutability is `final` fields. Unfortunately, using `final` fields comes with limitations which restrict their use in many real-world applications. In this talk we will look at some of the steps we're taking to address these limitations, and enable Java to take better advantage of immutable data.