Uvoľnenie objektu z pamäte – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Uvoľnenie objektu z pamäte – Java – Fórum – Programujte.comUvoľnenie objektu z pamäte – Java – Fórum – Programujte.com

 

Patrik
~ Anonymní uživatel
133 příspěvků
11. 12. 2017   #1
-
0
-

Dobrý deň, prosím Vás ako je to s uvoľnovaním objektov z pamäte? Majme List<MojObjekt>, keď z tohto listu vymažem daný objekt, tak sa asi pamäť neuvoľní, však? Čo som hľadal na internete, tak odporúčajú MojObjekt = null; Používam napríklad: 

for(MojObjekt obj : MojObjektList){
    if(požadovaná podmienka pre odstránenie){
        MojObjektList.remove(obj);
        obj = null; //Je toto ešte nutné, po odstránení zo zoznamu? Pretože v IDE, mi to zvláštne svieti.
        return;
    }
}

Veľmi by mi pomohlo objasnenie tohto "problému" kvôli nadchádzajúcim programom :) Ďakujem.

 
Nahlásit jako SPAM
IP: 2001:67c:1220:c1b0:75c5:4...–
KIIV
~ Moderátor
+43
God of flame
11. 12. 2017   #2
-
0
-

#1 Patrik
Musis se akorat zbavit vsech referenci na dany objekt, jinak ho garbage collector neuvolni. To plati i pro tu metodu remove.

Nicmene v Jave nic jako "smazat" neexistuje. Ani se to nemusi stat v nejblizsi dobe. To je vse na zlovuli GC.

Nahlásit jako SPAM
IP: 81.30.230.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Patrik
~ Anonymní uživatel
133 příspěvků
11. 12. 2017   #3
-
0
-

Takže obj = null; používať netreba, ak sa zbavím tých referencií?
A dá sa zistiť ktoré refernecie ostali v objekte?

 
Nahlásit jako SPAM
IP: 2001:67c:1220:c1b0:75c5:4...–
KIIV
~ Moderátor
+43
God of flame
11. 12. 2017   #4
-
0
-

#3 Patrik
to zalezi nad cim je ten objekt implementovany. Jestli je to nad polem, tak zase zalezi jak se z toho prvek maze. Napriklad jestli se prvky neposunou na misto toho mazaneho a treba se ten mazany prvek hodi na konec a pak se do vnejsiho sveta hlasi jen ze je mensi velikost (pak hrozi, ze to tam zustane).

Jinak reference je v Jave vsechno (krom par vyjimek jako typ int a podobne)

Nahlásit jako SPAM
IP: 81.30.230.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Patrik
~ Anonymní uživatel
133 příspěvků
11. 12. 2017   #5
-
0
-

Už niečo vymyslím. Každopádne ďakujem za pomoc a vysvetlenie.

 
Nahlásit jako SPAM
IP: 2001:67c:1220:c1b0:75c5:4...–
Patrik
~ Anonymní uživatel
133 příspěvků
13. 12. 2017   #6
-
0
-

Prepáč, že to znovu otváram. Ale ja som to zle pochopil. Ja som tomu porozumel tak, že sa mám zbaviť všetkých refs, ktoré sú použité v danom objekte. Ale podľa všetkého mne stačí sa zbaviť iba objektu(obj = null; Tým pádom objekt na nič neodkazuje, čiže ho môže garbage collector zobrať.), to čo je dnu ma už "nezaujíma". Či?

 
Nahlásit jako SPAM
IP: 2001:67c:1220:c1b0:c591:f...–
KIIV
~ Moderátor
+43
God of flame
13. 12. 2017   #7
-
0
-

#6 Patrik
Pokud zadna dalsi reference na ten samy objekt neexistuje, tak ano. Musi byt zruseny nebo vynulovany vsechny reference, jinak to GC smazat nesmi. A primy pristup k objektu nemas, vzdy je to pres reference. Samotne new vraci rovnou referenci.

Nahlásit jako SPAM
IP: 185.163.41.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Kit+15
Guru
13. 12. 2017   #8
-
0
-

#6 Patrik
Do proměnné obj nemusíš dávat null, protože tato proměnná po ukončení cyklu stejně zaniká a tím zaniká i reference na objekt. Nimráš se ve zbytečnostech.

Nahlásit jako SPAM
IP: 194.228.68.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 1 host

Podobná vlákna

Sprava pamate — založil Martin

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý