(1) Окончательный: модификатор (ключевое слово). Если класс объявлен окончательным, это означает, что он не может вывести новые подклассы и не может быть унаследован в качестве родительского класса. Следовательно, класс не может быть объявлен как абстрактным, так и окончательным. Объявление переменных или методов как окончательные, может гарантировать, что они не изменяются во время использования. Переменные, объявленные как окончательное, должны иметь начальное значение при объявлении, и могут быть прочитаны только в будущих ссылках и не могут быть изменены. Методы, объявленные как окончательные, также могут быть использованы только и не могут быть перегружены.
(2) Наконец: предоставляет наконец блоки для выполнения любой операции по очистке во время обработки исключений. Если исключение будет сброшено, будет выполнена соглашение о подходящем ущербе, и элемент управления введет наконец -то блок (если есть).
(3) Завершить: имя метода. Технология Java позволяет использовать метод infintize () выполнить необходимую очистку, прежде чем сборщик мусора очистит объекты из памяти. Этот метод вызывается коллекционером мусора при определении того, что объект не ссылается. Это определено в классе объекта, поэтому все классы наследуют его. Подкласс переопределяет метод infintize () для организации системных ресурсов или выполнения других работ по очистке. Метод infintize () вызывается на объект до того, как сборщик мусора удалит его.
Вышесказанное может быть немного расплывчатым, давайте обсудим это более подробно
1. Различные свойства
(1) окончательный - ключевое слово;
(2) infintize () - это метод;
(3), наконец, является блочным флагом, используемым в операторах TRY;
Во -вторых, функция
(1) Окончательное - это ключевое слово, используемое для идентификации констант, а ключевые слова, идентифицированные в конечном итоге, хранятся в постоянном пуле (конкретное использование окончательных констант будет введено ниже);
(2) Метод infintize () определяется в объекте. Он используется, чтобы вызвать JVM для мусора, собирать объект, когда объект «исчезает», аналогично деструктору в C ++; При определении пользователя он используется для выпуска ресурсов, занятых объектом (например, выполнение операций i/0);
(3) Наконец, {} используется для идентификации блока кода и сотрудничества с Try {}. Независимо от того, был ли код в попытке выполнить или нет (здесь относится к исключению), программа в блоке кода обязательно будет выполнена;
3. Подробное объяснение
1 Определите переменные
1.1 Когда окончательный определяет переменную базового типа, инициализация переменной должна использоваться в других местах при объявлении или в конструкторе. Константы, определенные этим ключевым словом, не могут быть изменены, за исключением этапа инициализации.
1.2 Окончание определяет ссылку на объект, и инициализация ссылки согласуется с требованиями при определении постоянной; Содержание объекта, определенного ключевым словом, может быть изменено, но адрес, указанный ссылкой, не может быть изменен;
2 Определите параметры
Если переменная, определенная этим параметром, передается, метод не может изменить содержание параметра (ошибка), который такой же, как правила модификации для определения переменной; Метод Java проходит значение при прохождении основного типа в методе Java, а метод Java передает параметр для объекта; <В конце концов, метод проходит метод в Java, зависит от передачи «копии»: для основного типа сначала создайте копию, назначить переданное значение для копирования, а затем работать на копии; Для типа объекта сначала создайте справочную копию и назначьте ссылку с переданным объектом для копирования>
Например: метод (конечный тест int);
В некоторых книгах говорится, что параметры окончательного определения здесь, особенно параметры объекта, очень полезны и не могут изменить содержание объекта в методе. Это утверждение неверно! Оказывается, я также думаю, что есть некоторые функциональные характеристики программирования таким образом. Вы не можете изменить содержание объекта. Здесь вы все еще можете изменить содержание объекта.
? ? Какое использование определения этого параметра? ?
Строка рождена, чтобы быть окончательной!
3 Метод определения
(1) методы, определенные с использованием окончательного ключевого слова, не могут быть унаследованы подклассами;
(2) Позвольте компилятору преобразовать все вызовы в этот метод в встроенное (встроенное) поведение, то есть вы можете скопировать этот метод непосредственно на вызове вместо того, чтобы делать обычные вызовы метода (сохранить точки останова, нажмите стек), что повысит эффективность программы. Однако, если их слишком много, это приведет к вздутию кода и повлияет на эффективность, поэтому этот метод следует использовать с осторожностью. Полем
4 Класс определения
Любой окончательный класс не может быть унаследован кем -либо, что означает, что этот класс является классом листа в дереве наследования, и этот класс считается идеальным и не требует никакой модификации (короче это не рекомендуется)