Comprendo e apprezzo i vantaggi della Garbage Collection in Java. Tuttavia non capisco perché non ci sia modo in Java di distruggere in modo esplicito (e veloce) un oggetto. Sicuramente questo potrebbe essere utile in alcuni casi, presumo un software critico per le prestazioni.
È vero che in Java il GC cancellerà un oggetto senza alcun riferimento esistente ad esso, quindi se voglio un oggetto cancellato posso impostare il riferimento ad esso su null
. Ma se ho capito bene, non è garantito che il GC cancellerà effettivamente l'oggetto, almeno non immediatamente. E questo è fuori dal controllo del programmatore.
Perché in Java non c'è modo di distruggere esplicitamente gli oggetti?
Pur comprendendo che Java è stato progettato per essere utilizzato come linguaggio di alto livello, questo astrae alcuni dettagli tecnici dal programmatore per semplificare le cose: Java è diventato uno dei linguaggi più utilizzati e viene utilizzato in enormi progetti. Suppongo che nei progetti enormi, le prestazioni siano spesso un problema. Dal momento che Java è cresciuto fino a diventare quello che è, perché non è stata aggiunta la distruzione dell'oggetto esplicita nel linguaggio?