Zodpovedá za odvoz stohu zberateľ odpadu?
Rozdeľuje tiež pamäť na statické / konštantné premenné?
príklad:
class A
{
void fun(){
int x = 100;
static int y = 200;
final int z = 300;
}
}
Sú všetky tri premenné pamäte uvoľnené po dokončení funkcie?
odpovede:
2 pre odpoveď č. 1Zberač odpadu je zodpovedný za osirelé predmety na halde.
Prezrite si tento výukový program Oracle Základy zbierky Java Java, Vysvetľuje základy GC.
2 pre odpoveď č. 2
Statické polia nebudú mať nárok na zber odpadu, pokiaľ je načítaná trieda, v ktorej žijú. A podľa Oracle docs:
Trieda alebo rozhranie sa môže vyložiť iba vtedy, ak je to jeho definujúca trieda nakladač môže byť regenerovaný zberateľom odpadu.
0 pre odpoveď č. 3
V podstate zbierka odpadov prideľuje pamäťpre všetky objekty, na ktoré už nie je odkazovaný žiadny iný objekt v JVM. Nezáleží teda na tom, či ide o statické alebo inštančné pole alebo lokálnu premennú.