2009-10-07 9 views

Répondre

3
  1. Les références déclarées à l'intérieur des méthodes sont hors de portée à la fermeture de la méthode.
  2. Les paramètres transmis aux méthodes ne seront pas éligibles pour le GC tant qu'il n'y aura plus de références à ces derniers ou qu'ils seront hors de portée.
  3. Les références statiques sont associées à une classe et restent actives tant que la classe est chargée.
  4. Les références renvoyées ne seront pas éligibles pour le GC tant qu'il n'y aura plus de références ou qu'elles ne seront plus visibles.
+0

Vous confondez les variables (1 et 3) avec les objets (2 et 4). – starblue

+0

Et si ces variables sont des objets? Vous semblez que vous confondez des primitifs et des objets. – duffymo

+0

Les variables ne peuvent pas * être * des objets, ce sont deux concepts complètement différents. Au plus une variable peut contenir une référence à un objet. – starblue

2

Objets en Java sont garantis pour vivre tant qu'ils sont référenceable par un transitive closure du root set. C'est une approximation prudente des objets vivants de l'application¹.

Edit: Cette question est au sujet de la vie de l'objet ou portée des variables? Nous avons une terminologie mixte. ¹ Un objet live est un objet qui sera référencé à nouveau avant la fin de l'application.

+0

re: terminologie mixte. Sans blague. J'aime la façon dont la réponse de Duffymo va et vient entre les deux. :-) –

Questions connexes