Scope et durée de vie des variables
Bonjour,
Voici une petite question.
Dans les livres sur Java, on explique que la durée de vie d'une variable est définie par son "scope". Ainsi une variable privée de classe a son scope défini par la classe, une variable locale définie par des parenthèses dans une méthode a son scope défini par le couple de { } dans lequel elle est définie.
Quand on sort du scope d'une variable, sa durée de vie, c'est à dire le moment à partir duquel le ramasse-miette va libérer la mémoire de cette variable, est indéterminé, et donc, hors du scope, on considère qu'une variable n'existe plus puisque le ramasse-miettes est sceptible de la manger à n'importe quel moment.
Considérons alors le petit code suivant, décrivant une méthode de classe:
public int[] foo() {
int[] a = new int[3];
return a;
}
Le scope de a est délimité par foo() , puisque ce sont les accolades { } qui le définissent.
Cela signifie-t-il que le tableau retourné par foo() risque d'être perdu à n'importe quel moment ?
Merci