Вступ до Destructor на Java

Деструкторів на Java можна дізнатися за допомогою методу завершення на Java. Концепція така ж, як і метод доопрацювання. Java працює для всіх, крім деструктора за допомогою збору сміття. Тому, якщо є необхідність викликати деструктор, це можна зробити за допомогою методу завершення. Цей метод не є незалежним, оскільки він спирається на збирання сміття. Колектор для сміття - це нитка, яка видаляє або знищила невикористаний об’єкт у ділянці купи. Скажіть, якщо об’єкт підключений до файлу або скажіть якусь програму бази даних або мережеві з'єднання, перед тим, як видалити або знищити об'єкт, він повинен закрити всі з'єднання, пов'язані з цими ресурсами, перш ніж відбудеться збирання сміття. Закриття функцій здійснюється за допомогою виклику методу завершення.

Визначення Destructor на Java

«Деструктор - це метод, який називається, коли відбувається руйнування об'єкта. "Основна мета деструктора - звільнити виділену пам'ять, а також очистити такі ресурси, як закриття відкритих файлів, закриття підключень до бази даних, закриття мережевих ресурсів тощо"

Синтаксис

Class Object
(
protected void finalize()
(
//statements like closure of database connection
)
)

Як працює деструктор на Java?

У Java деструктор має метод finalize (), схожий на деструктор у C ++. Коли об’єкти створені, вони зберігаються в купі пам'яті. До них доступні основні або дочірні теми. Тож коли ці об'єкти більше не використовуються основною ниткою або її дочірніми нитками, вони стають придатними для збору сміття, і пам'ять, яку зараз придбали, стає доступною для нових об’єктів, що створюються. Перед тим, як об'єкт є сміттям, зібраним сміттєзбірником, JRE (Java Runtime Environment) викликає метод finalize () для закриття потоків вводу-виводу, підключень до бази даних, мережевих з'єднань тощо. Зауважте, що названий метод завершення захищений. Чому фіналізація захищена, оскільки її можна викликати базовим класом або похідним класом? метод завершення присутній у класі Object. Таким чином, якщо ви хочете викликати цей метод завершення з інших об'єктів, ви можете змінити цей захищений на загальнодоступний.

Синтаксис:

protected void finalize throws Throwable()
(
//Keep some resource closing operations here
)

Методи доопрацювання ()

  1. Метод finalize () захищений, як визначено у класі java.lang.Object.
  2. Метод finalize () викликається лише один раз.
  3. щоб замінити метод finalize (), потрібно чітко викликати метод finalize.
  4. GC () - це послуга JVM для виконання збору сміття, вона викликається, коли об'єм пам'яті заповнений і потрібна пам'ять для нових об'єктів, що надходять.
  5. JVM ігнорує всі винятки, за винятком неперевірених винятків, що виникають у методі остаточного завершення.

Приклад №1

У нижченаведеній програмі виклик відповідного методу завершення класу String називається замість методу завершення, присутнього в програмі. Тут завершено метод завершення.

Код:

public class Demo
(
public static void main(String() args)
(
Integer i = new Integer(2);
i = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("object is garbage collected ");
)
)

Вихід:

Приклад №2

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

Код

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("object is garbage collected ");
)
)

Вихід:

Приклад №3

У нижченаведеній програмі фіналізація викликається внутрішньо залежно від кількості створених об'єктів.

Код

public class NewProgram(
public void finalize()(
System.out.println("object is garbage collected");
)
public static void main(String args())(
NewProgram np1=new NewProgram(); //first instantiation of Class NewProgram
NewProgram np2=new NewProgram(); //second instantiation of Class NewProgram
np1=null;
np2=null;
System.gc();
System.out.println("In the Main Method");
)
)

Вихід:

Приклад №4

У нижченаведеній програмі створюються два об'єкти, завершення викликається один раз, оскільки обидва об'єкти вказують на одне і те ж.

Код:

public class NewProgram(
public void finalize()(
System.out.println("garbage collected");
)
public static void main(String args())(
NewProgram np1=new NewProgram(); //first instantiation of Class NewProgram
NewProgram np2=new NewProgram(); //second instantiation of Class NewProgram
np1 = np2; // both now pointing to same object
System.gc();
System.out.println("in the Main Method");
)
)

Вихід:

Приклад №5

У нижченаведеній програмі метод доопрацювання буде викликаний двічі прямо і внутрішньо обома.

Код

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm.finalize();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("garbage collected ");
)
)

Вихід:

Приклад №6

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

Код:

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm.finalize();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("garbage collected ");
System.out.println(10 / 0);
)
)

Вихід:

Приклад №7

У нижченаведеній програмі виняток не називається, оскільки він не викликається явно і продовжує виконання програми, що залишилася.

Код:

public class Demo
(
public static void main(String() args)
(
Demo dm = new Demo();
dm = null;
System.gc();
System.out.println("In the Main Method");
)
protected void finalize()
(
System.out.println("garbage collected ");
System.out.println(10 / 0);
)
)

Вихід:

Переваги Destructor на Java

  1. Деструктор знищує значення, створене конструктором, на простір у купі пам'яті.
  2. Деструктор завжди викликається в кінці програми.
  3. Деструктор ніколи не перевантажений деструктором не бере жодних аргументів.
  4. Не потрібно визначати наш конструктор, компілятор створює для нас одного.

Висновок

Сподіваюся, ця стаття була цікавою та інформативною для вас, щоб вивчити тему. Ця стаття охоплює майже всі теми, які ви шукаєте, і, сподіваючись, відповідає всім вашим вимогам.

Рекомендовані статті

Це було керівництвом Destructor на Java. Тут ми обговорили визначення Деструктора на Java, як працює деструктор у Java з методами, перевагами та іншими прикладами. Ви також можете ознайомитися з іншою запропонованою нами статтею, щоб дізнатися більше -

  1. Що таке інтерфейс Java?
  2. Що таке інтерфейс Java?
  3. Інструменти Java
  4. Макет на Java
  5. Конструктор і деструктор на Java
  6. Приклади деструктора в Python
  7. JRE проти JVM | 8 найкращих відмінностей (Інфографіка)
  8. Деструктор в PHP з прикладами