Куча пам'яті в Java Об'єкти Java, створені в області, яка називається кучи пам'яті. Куча пам'яті створюється під час запуску JVM, куча пам'яті збільшується або зменшується при запуску програми Java. Коли пам’ять купи заповнюється, збирач сміття видаляє невикористані об’єкти, таким чином збирач сміття створює простір для нових об’єктів.
Пам'ять купи поділяється на дві області (або покоління)
1.молодий простір. 2.старий простір.
1.У молодому просторі є Едемський простір для нового Об’єкта, і є два простори вижилих (від і до), ці два простори вижилих завжди однакового розміру.
2. Простір для виживання використовується для зберігання об'єктів виживання. Коли молодий простір стає повним, збирач сміття видаляє невикористані об'єкти, запускаючи спеціальну молоду колекцію, де всі об'єкти, які прожили досить довго в молодому просторі, переміщуються (переміщуються) до старий простір, тим самим звільняючи молодий простір для більшого розподілу об’єктів.
3.Якщо космос Eden заповнений, GC буде працювати, якщо в цьому просторі Eden живуть будь-які об'єкти, вони переміщуються до космосу Survivor
4.У молодому просторі GC зазвичай використовують алгоритм копіювання, який є швидким, щоразу, об'єкти виживання копіюються в один із простору вижилих.
5.Якщо Космос Вижитого заповнений, решта об'єктів, що живуть, безпосередньо копіюються в Старий Космос.
6. У старому космосі GC звичайно використовує компактний алгоритм Mark, який працює повільно, але вимагає менше пам'яті.
7. Коли старий космос стає повним сміттям, там збирається сміття, що називається старою колекцією. У старому просторі об’єкти, що перебувають у режимі тривалого часу, залишаються там.
8. Зникне пам’ять, немає місця для нового Об’єкта, навіть GC зроблено для СТАРОЇ або Пермської частини.
9. Об'єкт переміщується під час збору сміття: eden -> пережив -> tenured (старий простір)