La maggior parte dei linguaggi di programmazione supporta la programmazione orientata agli oggetti. È una metodologia per costruire un programma o un software usando oggetti. Un oggetto viene creato utilizzando una classe, quindi è un'istanza di una classe. Una classe fornisce la descrizione di cosa dovrebbe consistere nell'oggetto. Quando si creano oggetti, la memoria viene allocata per gli oggetti. La memoria allocata dovrebbe essere rilasciata alla fine dell'esecuzione del programma per riutilizzare quella memoria per qualche altro oggetto. Linguaggi di programmazione come Java e C # .NET utilizzano i garbage collector per la gestione della memoria, mentre linguaggi come C e C ++ richiedono al programmatore di gestire la gestione della memoria. La quantità necessaria di memoria dovrebbe essere allocata e, alla fine dell'esecuzione, la memoria dovrebbe essere rilasciata. Il garbage collector e il distruttore sono usati per liberare memoria. Il differenza fondamentale tra il garbage collector e il distruttore è quello un garbage collector è un software che esegue la gestione automatica della memoria mentre un distruttore è un metodo speciale chiamato dal garbage collector durante la distruzione dell'oggetto.
1. Panoramica e differenza chiave
2. Cos'è un Garbage Collector
3. Cos'è un Destructor
4. Somiglianze tra Garbage Collector e Destructor
5. Confronto affiancato - Garbage Collector vs Destructor in forma tabulare
6. Sommario
Alcuni linguaggi di programmazione hanno ambienti di codice gestiti. Nei linguaggi di programmazione Java e C # viene eseguita la gestione automatica della memoria. Il programmatore non ha bisogno di liberare la memoria utilizzata dagli oggetti. È più facile per loro sviluppare sistemi anche complessi perché la gestione della memoria viene eseguita automaticamente. Nei linguaggi di programmazione come C, C ++ e Objective C, il programma dovrebbe rilasciare la memoria degli oggetti sul sistema. Lingue come Java e C # possono capire gli oggetti che non sono più usati. Successivamente, rilasciano la memoria allocata per tali oggetti nel sistema.
Nei linguaggi di programmazione C # e Java, se esiste una classe chiamata Studente, è possibile creare un oggetto utilizzando Student s = new Student (); Il 'nuovo' viene utilizzato per creare un'istanza di classe Student. Alloca la memoria nel sistema. Il 's' si riferisce al blocco di memoria allocato per quell'oggetto. Gli ambienti linguistici identificano se gli oggetti vengono utilizzati o meno. Se non vengono utilizzati ulteriormente, la memoria viene rilasciata e può essere utilizzata in seguito.
Figura 01: Garbage Collector e Destructor
Quando si esegue un programma, i blocchi di memoria vengono allocati dal pool di memoria di sistema. Quindi il programma esegue le attività utilizzando quella memoria. Al termine dell'esecuzione del programma, il garbage collector rileva se i blocchi di memoria allocati per il programma sono essenziali o meno. Se non sono richiesti, quei blocchi di memoria vengono restituiti al sistema. Quindi, il garbage collector può tenere traccia degli oggetti creati nel programma. I blocchi di memoria non più necessari vengono inviati al pool di memoria di sistema. Il vantaggio principale di questo processo è di confermare che il programmatore non deve concentrarsi sulla deallocazione della memoria. Bilancia le prestazioni e l'utilizzo della memoria.
Un distruttore è una funzione membro speciale di una classe. Viene invocato ogni volta che l'oggetto esce dall'ambito. L'oggetto può essere distrutto quando una funzione termina o alla fine dell'esecuzione del programma. Il distruttore ha lo stesso nome del nome della classe. Il costruttore è usato per creare l'oggetto. Può accettare parametri. Il costruttore può anche avere valori di ritorno. Ma in un Destructor, non ci sono tipi di ritorno o parametri di accettazione. Una classe può consistere solo di un distruttore. Un distruttore è riferito usando il segno tilde. Se il nome della classe è Studente, il distruttore è ~ Studente () .
Il garbage collector cerca gli oggetti che non sono più necessari. Assicura che gli oggetti che non sono più utilizzati dal programma dovrebbero essere distrutti. Chiama il distruttore per rilasciare la memoria e deallocare le risorse. I distruttori sono utili per rilasciare memoria, chiudere file, rilasciare risorse di rete e chiudere connessioni database. Nella maggior parte dei linguaggi di programmazione, non è necessario scrivere il distruttore perché il garbage collector chiama il costruttore predefinito da solo. Se il programmatore ha eseguito un'assegnazione di memoria dinamica utilizzando i puntatori in un linguaggio come C ++, allora dovrebbe scrivere un distruttore per rilasciare la memoria prima che l'oggetto venga distrutto.
Garbage Collector vs Destructor | |
Un garbage collector è un software che esegue la gestione automatica della memoria. | Un distruttore è un metodo speciale chiamato dal garbage collector durante la distruzione dell'oggetto. |
genere | |
Un garbage collector è un software. | Un distruttore è un metodo. |
Garbage collector e destructor sono due termini associati al rilascio di memoria. Questo articolo ha discusso la differenza tra Garbage Collector e il distruttore. La differenza tra il garbage collector e il distruttore è che un garbage collector è un software che esegue la gestione automatica della memoria mentre un distruttore è un metodo speciale chiamato dal garbage collector durante la distruzione dell'oggetto.
È possibile scaricare la versione PDF di questo articolo e utilizzarlo per scopi offline come da nota di citazione. Si prega di scaricare la versione PDF qui: Differenza tra Garbage Collector e Destructor
1.lyndapodcast. "Come funziona la garbage collection di C # lynda. Tutorial di Com. "Come funziona la garbage collection di C # tutorial su lynda.Com, LinkedIn Learning Solutions, 19 settembre 2011. Disponibile qui
2.Destruttori in C. "GeeksforGeeks, 27 maggio 2017. Disponibile qui
3. Jain, Shubham. "Garbage Collector And Destructor In C #." C # Corner. Disponibile qui