Спросят с вероятностью 25%
Ключевые слова final, finally, и finalize имеют совершенно разные цели и контексты использования, хотя на первый взгляд могут показаться похожими из-за схожести их названий.
final
Это модификатор, который может быть использован с переменными, методами и классами.
- Когда он применяется к переменной, это означает, что переменная может быть присвоена только один раз и её значение не может быть изменено после присваивания.
- Когда он используется с методом, это предотвращает переопределение метода в подклассах.
- Когда он применяется к классу, это означает, что класс не может быть наследован.
final int x = 100; // переменная, которую нельзя изменить
public final void myMethod() {} // метод, который нельзя переопределить
public final class MyFinalClass {} // класс, от которого нельзя наследоватьсяfinally
Это блок кода, который используется вместе с блоками
try и catch для обработки исключений. Блок finally выполняется всегда после выполнения блока try/catch, независимо от того, было ли выброшено исключение или нет. Это идеальное место для кода очистки, например, для закрытия файловых потоков или освобождения других ресурсов.try {
// код, который может вызвать исключение
} catch (Exception e) {
// обработка исключения
} finally {
// код, который выполняется всегда
}finalize
Это метод класса
Object, который вызывается сборщиком мусора перед тем, как объект будет уничтожен. Этот метод можно переопределить в классе для реализации очистки ресурсов или других операций перед уничтожением объекта. Однако его использование не рекомендуется из-за его непредсказуемости и малой эффективности, а также потому, что он может вызвать задержку в сборке мусора.@Override
protected void finalize() throws Throwable {
try {
// очистка ресурсов
} finally {
super.finalize();
}
}-
final используется для создания констант, предотвращения наследования классов и переопределения методов.-
finally гарантирует выполнение кода после блока try/catch, обычно для очистки ресурсов.-
finalize предназначен для очистки перед уничтожением объекта, но его использование не рекомендуется.Каждое из этих ключевых слов имеет уникальное применение и важно в контексте разработки.
👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 1715 вопроса на Java разработчика. Ставь 👍 если нравится контент
🔐 База собесов | 🔐 База тестовых