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
Partager