Junior — Middle
Quelles étapes de développement peut-on distinguer dans le cycle de vie des objets en mémoire gérée?
sobes.tech IA
Réponse de l'IA
Le cycle de vie des objets dans la mémoire gérée en C# peut être divisé en plusieurs étapes:
- Création (Allocation) — l'objet est créé dans le tas géré (heap) à l'aide de l'opérateur
new. - Utilisation (Usage) — l'objet est utilisé dans le programme, et les références à celui-ci sont stockées dans des variables.
- Collecte des déchets (Garbage Collection) — lorsque plus aucune référence à l'objet n'existe, le ramasse-miettes le marque comme candidat à la suppression.
- Libération de mémoire (Finalisation et Déallocation) — si l'objet possède un finaliseur (
Finalize), il est appelé avant la libération de la mémoire; ensuite, la mémoire est libérée.
Un point important — le ramasse-miettes en .NET fonctionne par générations (Gen 0, Gen 1, Gen 2), ce qui optimise la performance et le temps de nettoyage.
Exemple:
class MyClass {
~MyClass() {
// Finaliseur, appelé avant la suppression de l'objet
}
}
var obj = new MyClass(); // Création
// Utilisation de obj
obj = null; // L'objet n'est plus accessible
// Le ramasse-miettes libérera la mémoire plus tard