Що таке збір сміття на Java?

Зміст:

Anonim

Що таке збір сміття на Java?

Збір сміття в Java - це процес, за допомогою якого програми автоматично виконують управління пам’яттю. Збірник сміття (GC) знаходить невикористані об’єкти та видаляє їх, щоб відновити пам’ять. У Java динамічне розподіл пам’яті об’єктів досягається за допомогою нового оператора, який використовує деяку пам’ять, і пам’ять залишається виділеною, поки не з’являться посилання на використання об’єкта.

Коли немає посилань на об'єкт, вважається, що він більше не потрібен, і пам'ять, зайнята об'єктом, може бути витребована. Немає явної необхідності знищувати об'єкт, оскільки Java обробляє де-розподіл автоматично.

Техніка, яка це робить, відома як Збір сміття . Програми, які не розподіляють пам’ять, можуть врешті-решт вийти з ладу, коли в системі не залишиться пам’яті для виділення. Кажуть, що ці програми мають витоки пам’яті.

Збір сміття в Java відбувається автоматично протягом життя програми, усуваючи необхідність де-розподіляти пам’ять і тим самим уникаючи витоків пам’яті.

Мовою С відповідальність програміста полягає в тому, щоб розподілити динамічно розподілену пам’ять за допомогою функції free (). Саме тут веде управління пам'яттю Java.

Примітка: Усі об'єкти створюються в розділі купи пам'яті. Докладніше про це у наступному підручнику.

Приклад: Вивчити механізм збирання сміття на Java

Крок 1) Скопіюйте наступний код у редактор.

клас Студент {int a;int b;public void setData (int c, int d) {a = c;b = d;}public void showData () {System.out.println ("Значення a =" + a);System.out.println ("Значення b =" + b);}public static void main (String args []) {Student s1 = new Student ();Student s2 = new Student ();s1.setData (1,2);s2.setData (3,4);s1.showData ();s2.showData ();// Студент s3;// s3 = s2;//s3.showData ();// s2 = нуль;//s3.showData ();// s3 = нуль;//s3.showData ();}}

Крок 2) Збережіть, скомпілюйте та запустіть код. Як показано на схемі, створюються два об'єкти та дві посилальні змінні.

Крок 3) Рядок для коментарів № 20,21,22. Збережіть, скомпілюйте та запустіть код.
Крок 4) Як показано на діаграмі нижче, дві посилальні змінні вказують на один і той же об’єкт.

Крок 5) Розкоментуйте рядок # 23 і 24. Скомпілюйте, збережіть і запустіть код
Крок 6) Як показано на схемі нижче, s2 стає нульовим, але s3 все ще вказує на об'єкт і не підходить для збору сміття Java.

Крок 7) Розкоментуйте рядок № 25 та 26. Збережіть, скомпілюйте та запустіть код.
Крок 8) На даний момент немає посилань, що вказують на об’єкт, і стає придатним для збору сміття. Він буде видалений з пам'яті, і немає можливості повернути його назад.

Як видалити об'єкт в Java?

1) Якщо ви хочете зробити свій об’єкт придатним для збору сміття, призначте його посилальну змінну значення null.
2) Первісні типи не є об’єктами. Їм не можна присвоїти значення null.