При вызове static synchronized метода синхронизация происходит на объекте класса, в котором определен этот метод. Каждый класс в Java имеет свой монитор, который используется для синхронизации доступа к статическим методам и полям этого класса.
Когда поток вызывает static synchronized метод, он должен получить монитор объекта класса, чтобы выполнить метод. Если монитор уже занят другим потоком, то вызывающий поток будет ожидать освобождения монитора.
Это отличается от синхронизации на экземплярных методах, где синхронизация происходит на уровне конкретного экземпляра объекта.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov