Sobes.tech
Junior — Middle

Selgitage Java virtuaalse masina virna (heap) töömehhanismi ja kuidas see haldab mälu objektidele.

sobes.tech AI

Vastus AI-lt

Java virtuaalmasin eraldab mälu objekti jaoks — see on heap (hunnik). Kui objekt luuakse new abil, eraldatakse selle jaoks mälu täpselt hunnikus.

Hunnik hallatakse Garbage Collector'i (prügikogujaga), kes vabastab automaatselt mälu, kui objektid muutuvad kättesaamatuks (neil pole enam viiteid).

Hunniku töö põhipunktid:

  • Hunnik on jagatud põlvkondadeks: Noore Põlvkonna (Young Generation), Vanema Põlvkonna (Old Generation) ja mõnikord Püsiva Põlvkonna (Permanent Generation) või metaspace (Metaspace).
  • Noore Põlvkonna sisaldab hiljuti loodud objekte. Siin toimuvad sagedased prügi kogumised, mida nimetatakse minor GC-ks.
  • Objekte, mis jäävad ellu mitme kogumisvooru jooksul, liigutatakse vanema põlvkonda.
  • Vanem põlvkond puhastatakse harvem, major GC ajal, mis on kulukam.

Seega tagab hunnik objekti jaoks dünaamilise mälu eraldamise ning garbage collector haldab automaatselt mälu vabastamist, vähendades mälu lekkimise ja haldamise vigade tõenäosust.