Обмен технологиями

Два вопроса на собеседовании по Java каждый день (1)

2024-07-11

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Разница и связь между этим ключевым словом и суперключевым словом

Ключевое слово this используется в этом классе.

Внутри класса вы можете использовать это в любом методе для ссылки на текущий объект.

Ключевое слово this используется для разрешения конфликтов между глобальными и локальными переменными.

this() может вызывать перегруженные конструкторы того же класса, и его необходимо разместить в первой строке.

Ключевое слово super используется в подклассах.

В подклассах методы и свойства родительских классов можно вызывать через super.

super() может вызывать конструктор родительского класса и его необходимо разместить в первой строке.

super() и this() не могут использоваться одновременно, и ни один из них не может использоваться в статическом методе.

2. Разница между финальным ключевым словом и статическим ключевым словом

Final изменяет переменные, методы, классы

Если метод Final изменяет переменную, эта переменная является константой. Константы не могут быть изменены и должны быть инициализированы при определении.

Если метод является окончательным, он не может быть переопределен подклассами.

Если Final изменяет класс, этот класс больше не может быть расширен или подклассирован. String и Math в библиотеке классов Java являются конечными классами.

окончательная модифицированная константа ссылочного типа

Если константа является базовым типом данных, ее нельзя изменить.

Если константа является ссылочным типом, ссылке нельзя назначить другие объекты, но ссылку можно использовать для изменения свойств внутри объекта.

Переменные, измененные с помощью static, являются статическими переменными, которые по сути являются глобальными переменными. Все экземпляры класса используют одни и те же статические переменные. Таким образом, после изменения значения статической переменной через объект статическая переменная, доступ к которой осуществляется через другие объекты класса, имеет измененное значение. Когда класс загружается виртуальной машиной, статические переменные инициализируются, и статические переменные можно использовать без создания объекта класса.

Методы, модифицированные static, являются статическими методами. Они могут только напрямую вызывать другие статические методы, могут напрямую обращаться только к статическим данным и не могут каким-либо образом ссылаться на ключевые слова this или super.

Блок кода, модифицированный static, — это статический блок кода, который выполняется только один раз и выполняется при загрузке класса. Его функция — статическая инициализация данных.