final, finally и finalize: разные задачи
final, finally и finalize: разные задачи final запрещает повторное присваивание переменной, переопределение метода или наследование класса. final-ссылка не делает объект неизменяемым: final var names = new ArrayList<String>(); names.add("Java"); // допустимо finally выполняется при выходе из try, в том числе после return или исключения. Это не гарантия на случай аварийного завершения JVM. Для AutoCloseable обычно удобнее try-with-resources. finalize() — устаревший механизм финализации. В Java 18 его пометили для удаления, а не удалили: метод ещё присутствует в API Java 25. Момент вызова не гарантирован, поэтому закрывать файлы и соединения через него нельзя. #Java Java Библиотека | Мы в Телеграм