Два разных метода функционально эквивалентны . может иметь очень маленькую производительность разница:
На уровне байт-кода синхронизированный метод объявляет о необходимости синхронизации в виде набора битовв флаге доступа метода.JVM ищет этот битовый флаг и выполняет соответствующую синхронизацию.
Синхронизированный блок осуществляет свою синхронизацию посредством последовательности операций с байт-кодом, хранящихся в определении метода файла класса.
Таким образом, синхронизированный метод может потенциально выполняться немного быстрее и занимать меньше места с точки зрения байт-кода.
Опять же, по спецификации, они функционально идентичны.
Я предполагаю, что разница в производительности незначительна, и правила стиля кода должны победить.Некоторые компиляторы могут даже оптимизировать блок в флаг доступа.И JIT может убрать разницу в производительности.