définit l'objet à NULL le faire marquée pour GC? P>
Edit: une classe a plusieurs méthodes statiques. Lorsque vous utilisez ces méthodes dans votre programme, quelle est la meilleure façon de vous assurer que les objets sont marqués pour GC après un certain point? P>
4 Réponses :
les méthodes em> ne sont pas des ordures recueillies du tout - il n'est donc pas vraiment clair que votre question signifie. P>
De même, vous ne définissez jamais un objet em> à NULL. Vous pouvez faire la valeur d'une variable em> null, mais qui n'a rien à un objet à la variable précédemment mentionnée. Cela signifie simplement que la prochaine fois que le collecteur des ordures recherche un objet en direct, cette variable ne contribuera pas d'objet à l'ensemble d'objets qui doivent être conservés en vie à la fin du GC. P>
Je vous suggère de lire Article de Jeffrey Richter sur la collection à la poubelle pour un Bit plus de fond, puis posez des questions spécifiques supplémentaires lorsque vous devez saisir les bases. p>
Les objets ne sont pas marqués
Si vous posez des questions sur ce qui arrive aux objets référencés par des variables dans des méthodes statiques, ces objets deviennent éligibles pour la collecte des ordures lorsqu'ils ne sont plus en portée.
Si vous parlez d'objets référencés par des champs statiques, ceux-ci ne sont pas collectés, en termes simples, ne sont pas collectés jusqu'à ce que les références soient définies sur NULL. P>
L'exemple suivant peut illustrer cela mieux: P>
class Example
{
private static object field1 = new object();
public static void SomeMethod()
{
object variable1 = new object();
// ...
}
public static void Deref()
{
field1 = null;
}
}
Pensez à des méthodes statiques comme la classe em> les méthodes. Ils sont disponibles si un objet existe ou non. Ils n'ont aucune incidence sur la collecte des ordures. P>