Start here. This is the direct spoken answer to practice first.
Overview
An object can be logically immutable yet still be exposed incorrectly before construction and publication complete.
Safe publication means another thread receives a reference with guarantees that it can see the object's completed initialization. Valid publication mechanisms include storing the reference under a lock, writing it to a volatile field, placing it in a concurrent collection, or completing a properly synchronized initialization before starting the reader thread. Correctly constructed final fields receive special visibility guarantees. The constructor must not let this escape before initialization finishes.