Delete in java

di il
1 risposte

Delete in java

Ciao. Ho un problema apparentemente stupido per un programmatore Java ma per uno che ha sempre usato il c++ è compilcato...esiste in Java una key-word simile a "delete" che mi permette di deallocare memoria??? Ho sentito dire che si può dichiarare la variabile null ma ciò pemette effettivamente la distruzione dell'oggetto e la liberazione di memoria?? Esistono allocatori dinamici o è tutto un gioco a incastri della visibilità delle variabili??

1 Risposte

  • Re: Delete in java

    Ciao con Java non puoi approcciare come con C++.
    C'è l'infrastruttura del Garbage Collector che dealloca dalla memoria gli oggetti obsoleti (senza riferimenti).

    Se metti a null un oggetto, elimini il riferimento ma non liberi la memoria.

    Volendo puoi forzare l'esecuzione del garbage collector con l'istruzione GC.Collect()
    Questa forzatura è comunque sconsigliata in quanto va contro gli stessi principi della garbage collection, ovvero eseguire le operazioni di rilascio memoria assorbendo il minimo delle risorse (una sorta di esecuzione in background).

    Il metodo migliore è fare:
    tuoOggetto.Dispose();
    tuoOggetto = null;

    in modo da mettere in condizione il gargage collector di riconoscere come oblooleta la risorsa, quindi finalizzarla e liberarne la memoria.
Devi accedere o registrarti per scrivere nel forum
1 risposte