Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Garbage Collection je jedným z pokročilejších tém v programovaní v jazyku Java . Presnejšie povedané , môžu vývojári Java ísť celú kariéru , bez toho aby museli vedieť veľa o garbage collector a ako to funguje . V podstate , každý objekt vytvorený v programe Java je registrovaná u Java runtime , spolu s počtom všetkých miestach je tu existujúci odkaz na tento objekt . Ak je objekt už odvolával sa na všetky ostatné predmety , systém označí pre zber a nabudúce garbage collector beží , odstráni tento objekt .
Základné Správa pamäte v C + +
Veci sú rôzne v iných programovacích jazykoch , ako je C + + , napríklad. V C + + vývojár ovláda , keď je objekt odstránený z pamäte , na rozdiel od systému . Toto je známe ako " deterministický správe pamäte , " a to má ako svoje klady a zápory . Primárnej a strane je to , že developer vie presne , keď v kódu objektu je odstránený . Avšak , je to veľmi jednoduché odstrániť objekt , ktorý môže byť ešte v použití inde v kóde .
Deštruktory a dokončiť
V C + + , môžu vývojári pridať destruktor do triedy , čo je metóda , ktorá je volaná vždy , keď je objekt odstránený . To umožňuje vývojárom spustenie kódu , ak je už nepotrebujete objekt, treba odstrániť svoje deti alebo upratať zdroja . V Jave , systém poskytuje metódu dokončiť , ktoré môžu vývojári prepísať poskytovať podobnú funkčnosť . Hlavným rozdielom je , že metóda Finalize je volaná pri každom behu zistí , že objekt nemá žiadne ďalšie odkazy a môžu byť zhromažďované .
Používajte opatrne
Počas finalizácie môže poskytujú podobné funkcie deštruktory C + + ' s , to by naozaj byť používané s opatrnosťou . Všeobecne povedané , pri prepísanie metódy dokončiť môže byť úplne v poriadku pre väčšinu situácií , nemali by ste sa spoliehať na to pre zaistenie zdrojov sú vyčistené v určitom čase . Napríklad , ak máte pripojenie k databáze otvoriť v objekte , ktorý je uzavretý v finalizácie môžete stále potenciálne vytvárať príliš veľa pripojenie k databáze a odovzdať limit databázu pred garbage collector dokončila všetky objekty - aj keď nie už majú odkazy na ne kdekoľvek .