Добрый вечер. Известно, что для осуществления синхронизации через ключевое слово synchronized существует механизм, называемый монитором. В нативном коде hotspot jvm это ObjectMonitor. Каждому объекту соответствует какой-то монитор. Вопрос в том, на каком этапе создается монитор и сколько их всего создается в приложении. Создается ли он для каждого объекта непосредственно, либо только для объектов, которые когда-либо пытается залочить поток, непосредственно перед блоком synchronized. Также интересует, одинаковая ли логика создания мониторов в случае обычных объектов и объектов типа Class. В реализации hotspot jvm.