Статический вложенный класс не требует экземпляра Service и не имеет неявной ссылки на него. Нестатический inner class связан с конкретным внешним экземпляром.
Чем статический вложенный класс отличается от inner class Java
Статический вложенный класс не требует экземпляра Service и не имеет неявной ссылки на него. Нестатический inner class связан с конкретным внешним экземпляром.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
В Java Client объявлен внутри Service. В одном варианте он static, в другом — обычный нестатический inner class. Как меняются создание и доступ к внешнему объекту?
Ответ
Статический вложенный класс не требует экземпляра Service и не имеет неявной ссылки на него. Нестатический inner class связан с конкретным внешним экземпляром.
Создание: new Service.Client() для static и service.new Client() для inner. Если клиенту не нужно состояние внешнего объекта, static-вариант уменьшает скрытую связанность. Термин «статичный класс» следует уточнять: верхнеуровневый класс Java не объявляется static.