Різниця між Final, нарешті та Finalize на Java

Автор: Laura McKinney
Дата Створення: 2 Квітень 2021
Дата Оновлення: 13 Травень 2024
Anonim
Java tech talk: Spring Boot and GraphQl integration. Как сделать это просто?
Відеоролик: Java tech talk: Spring Boot and GraphQl integration. Как сделать это просто?

Зміст


Слова "остаточно, остаточно і остаточно" лежить в межах Яви. Кожному з них забезпечується різне функціонування. Основна відмінність остаточного та остаточного полягає в тому остаточний є модифікатором доступу, нарешті є блоком і доопрацювати є методом об’єктного класу. Існують деякі інші відмінності між остаточним та остаточним, які обговорюються у таблиці порівняння.

  1. Порівняльна діаграма
  2. Визначення
  3. Ключові відмінності
  4. Висновок

Порівняльна діаграма

Основа для порівнянняФіналНарештіДовершити
ОсновніФінал - це "Ключове слово" та "модифікатор доступу" на Java.Нарешті - «блок» на Java.Фіналізація - це "метод" на Java.
ЗастосовуєтьсяFinal - це ключове слово, застосовне до класів, змінних та методів.Нарешті - це блок, який завжди асоціюється з блоком "try and catch".finalize () - метод, застосовний до об'єктів.
Робочий(1) Кінцева змінна стає постійною, і її не можна перепризначити.
(2) Кінцевий метод не може бути замінений дочірнім класом.
(3) Випускний клас не можна продовжувати.
Блок "нарешті", очистіть ресурси, використані в блоці "спробувати".Метод доопрацювання виконує очищення діяльності, пов’язаної з об’єктом до його знищення.
ВиконанняОстаточний метод виконується після його виклику."Нарешті" блок виконується відразу після виконання блоку "try-catch".метод finalize () виконується безпосередньо перед знищенням об'єкта.


Визначення фіналу

"Final" - ключове слово на Java. Це модифікатор доступу. "Кінцеве" ключове слово застосовно до класів, методів та змінних. Давайте подивимось, як це працює з кожним із них.

Кінцева змінна

  • Коли до змінної застосовується остаточне ключове слово, воно не може бути додатково змінено.
  • Кінцева змінна повинна бути ініціалізована, коли вона оголошена.
  • У загальній умові кодування кінцеві змінні оголошуються в ПОНЯТТІ.
  • Кінцева змінна не займає пам’ять на кожній інстанції.

final int FILE_OPEN = 2;

Заключні методи

  • Коли метод у класі оголошується як остаточний, його не можна перекрити його підкласом.
  • Невеликі методи, оголошені остаточними, компілятором можуть бути «вбудовані», що зменшить накладні витрати виклику функцій та підвищить підвищення продуктивності.
  • Викликані методи виклику вирішуються динамічно, але коли метод оголошується як остаточний, його не можна перекрити. Отже, виклик функції може бути вирішений під час компіляції.

клас A {final void meth () {System.out.ln ("Це остаточний метод."); }} клас B поширює A {void meth () {// Клас B не може успадкувати метод класу A. System.out.ln ("Не переосмислює"); }}

Підсумковий клас

  • Коли клас оголошується як остаточний, він не може бути успадкований жодним підкласом.
  • Оголошення класу як остаточного автоматично оголосить усі його методи остаточними.
  • Ви не можете оголосити клас як "абстрактним", так і "остаточним".

остаточний клас A {// ...} клас B поширюється A {// Клас B не може успадкувати клас A // ...}

  • У Java "нарешті" - це блок, який завжди асоціюється з блоком "try / catch".
  • Блок "нарешті" виконується після блоку спробу / лову та перед кодом, що слідує за блоком спробу / лову.
  • Блок "нарешті" буде виконувати, викинуто виняток чи ні.
  • Коли викинутий виняток, і жоден блок лову не відповідає виняткові навіть тоді, блок "нарешті" виконується.
  • Коли метод повертається до абонента зсередини блоку try / catch через uncaught виняток або явне повернення, блок "нарешті" виконується безпосередньо перед тим, як метод повернеться до абонента.
  • Блок "нарешті" використовується для очищення ресурсів або звільнення пам'яті, що використовується в блоці "спробувати".
  • Блок "нарешті" є необов'язковим, але це найкраща практика, щоб написати остаточно блок після блоку спробувати.

клас FinalExample {// Цей метод викидає виняток із методу. static void procA () {try {System.out.ln ("всередині procA"); кинути нову RuntimeException ("демонстрацію"); } нарешті {System.out.ln ("нарешті ProAs"); }} // Повернення з блоку спробу. static void procB () {try {System.out.ln ("всередині procB"); повернення; } нарешті {System.out.ln ("нарешті ProcBs"); }} // Виконати блок спробу нормально. static void procC () {try {System.out.ln ("всередині procC"); } нарешті {System.out.ln ("нарешті процесори"); }} публічний статичний недійсний main (String args) {try {procA (); } catch (Виняток е) {System.out.ln ("Виняток вилучено"); } procB (); procC (); }} // виведення всередині procA, нарешті, виключення ProA, нарешті, виняток, що потрапив усередину procB, нарешті, у procC, нарешті, у procC

Визначення Фіналізувати

  • Фіналізувати - це метод в об'єктному класі.
  • Об'єкт може містити деякі не-Java-ресурси, такі як обробка файлів; тоді він повинен бути звільнений, перш ніж його знищити.
  • Цей метод викликається сміттєзбірником до повного знищення об'єкта.
  • Цей метод виконує дії по очищенню об'єкта до його знищення.

Загальна форма методу finalize () полягає в наступному.


protected void finalize () {// код завершення тут}

Метод завершення оголошується захищеним, щоб не можна було отримати доступ до нього поза класом.

Цей метод завжди називають перед вивезенням сміття.

  1. Ключове слово final - це модифікатор доступу, нарешті - це блок, а finalize - метод.
  2. Ключове слово остаточне застосовне до класів, змінних та методів класів, нарешті, це блок, пов'язаний з блоком спробу вилову, який використовується для обробки винятків, остаточний - метод, який працює лише на об'єктах.
  3. Змінна, щойно оголошена як остаточна, стає постійною і її не можна перепризначити знову, метод, оголошений як остаточний, не можна перекривати, а клас, який оголошений як остаточний, ніколи не може бути успадкований. Нарешті блок використовується для очищення ресурсів, використовуваних блоком спробу і лову. Метод завершення використовується для очищення ресурсів, які використовуються об'єктом до знищення об'єкта.

Висновок:

Остаточний, нарешті та доопрацьований, має різний ефект, коли застосовується до методу.