Я думаю, что бы вы ни читали это, можно было бы сформулировать это лучше.
Разница между синхронизированными методами экземпляра и синхронизированными статическими методами заключается в том, что последний «блокирует» класс, тогда как первый блокирует экземпляр того класса, для которого вызывается синхронизированный метод. См. ответ для получения дополнительной информации.
Предполагая, что автор знает, о чем он / она говорит, слово «объект класса» создает путаницу, поскольку сами классы не являются объектами. Он / она говорит о случаях Class<T>
? Возможно нет. Автор должен был просто сказать «класс».
Что касается различия между «объектом» и «экземпляром» вне контекста синхронизации, они означают действительно одно и то же - те вещи, которые вы создаете, вызывая конструкторы (и строковые литералы).
Лично я считаю, что слово «объект» имеет более высокий уровень абстракции. Когда я говорю на низком уровне абстракции (речь идет об отдельных строках кода, например, «я создал здесь экземпляр Foo
, написав new Foo()
»), я бы использовал «экземпляр». Когда я говорю о вещах на более высоком уровне (например, как работает вся система), я склонен использовать «объект». Но это может быть только я. Другие люди могут использовать их взаимозаменяемо.