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