Java Reference
In-Depth Information
Listing 3.13. Caching the Last Result Using a Volatile Reference to an Immutable Holder Object.
Listing 3.14. Publishing an Object without Adequate Synchronization.
Don't do this.