Distruzione di oggetti
Un oggetto occupa
un certo spazio di memoria a cui si puo' accedere attraverso le variabili
che contengono un riferimento a quell'oggetto. Modificando queste variabili
si potrebbe precludere l'accesso a quell'oggetto che diventerebbe cosi'
inutilizzato.
Java usa una procedura
chiamata garbage collection che libera quelle parti di memoria (dello
heap) che sono occupate da oggetti non piu' accessibili dal programma.
In altri linguaggi
questo compito e' lasciato al programmatore (ad esempio, la primiva Dispose
del Pascal). Tuttavia tenere traccia di quali oggetti sono ``garbage" e
quali non lo sono e' un compito molto difficile ed e' facile commettere
degli errori. Questi sono tipicamente di due tipi:
-
dangling pointer
(il programmatore potrebbe per sbaglio cancellare un oggetto anche se ci
sono ancora dei riferimenti ad esso);
-
memory leak (il
programmatore si dimentica di cancellare degli oggetti che non sono piu'
usati).
L'uso di procedure di
sistema per il garbage collection in Java elimina la possibilita' che si
verifichino questi errori.