Публикация потокобезопасного объекта
Согласно спецификациям, мы не можем синхронизировать конструктор любого объекта, потому что другие потоки не могут видеть объект, созданный до того, как поток, создавший его, завершил его. Но согласно JMM, при создании объекта память может быть выделена и обращена к ссылочной переменной до того, как ее состояния будут инициализированы.
Так почему же Java не должна позволять методу синхронизации вместе с конструкторами публиковать всегда потокобезопасную ссылку на объект?