2010-10-31 3 views
3

statique où les variables statiques et les méthodes sont stockées. en tas ou en pile et comment ces mémoires sont libérées lorsqu'elles ne sont pas utiliséesgestion de la mémoire pour

+0

Pourriez-vous s'il vous plaît donner un peu plus de contexte sur ce que vous essayez d'accomplir. –

Répondre

4

Les variables statiques sont stockées sur le tas. Je ne suis pas sûr de ce que vous entendez par méthodes, mais les variables locales d'une méthode sont stockées sur la pile.

La pile est libérée lorsque vous quittez une méthode. Quand une méthode a besoin de variables locales, plus de pile est allouée. Lorsque la méthode se termine, la mémoire est libérée.

Le reste de la mémoire va sur le tas, par ex. avec l'opérateur new. Ceci est libéré une fois que vous relâchez toutes les références à un objet:

Car myCar = new Car(); 

// Use your car. 

myCar = null; 

// Somewhere between this point and when your application 
// exits, the memory will be released. 

va de même pour les variables statiques, mais vous devez spécifiquement paramétrés null si vous voulez les rendre admissibles à la collecte des ordures.

Pour plus d'informations sur la gestion de la mémoire .NET, les résultats de recherche Google sur http://www.google.com/search?q=memory+management+.net+heap+stack ont donné quelques bons articles.

+0

Donc, si nous supposons que nous avons une méthode avec le travail de clé statique b4. donc je veux dire où cette méthode allouer la mémoire en tas ou pile et si dans une mémoire statique puis quand nous n'utilisons pas cette méthode comment sa mémoire est désallouée cela je veux savoir – NoviceToDotNet

+0

Comment une méthode que je peux définir explicitement pour GC – NoviceToDotNet

+0

A La méthode statique est juste une méthode. Les variables locales pour cette méthode vont juste sur la pile. Une méthode statique elle-même n'utilise pas de mémoire, seulement ses paramètres et ses variables locales qui vont tous sur la pile. –

1

This article donne une bonne explication: les variables statiques sont stockées sur une zone spéciale du tas dans .net.

+0

encore cet article manque à certains points et je vais lister tous plus tard ce qui me rend très confus – NoviceToDotNet