Un programme est constitué de blocs d'instructions. Il existe des règles concernant la visibilité des variables (leur "portée") depuis les différents blocs.
Le contenu d'une variable devenue inaccessible est éliminé de la mémoire par la machine virtuelle à l'aide du "garbage collector".
Exemple :
package initial; class Portee { static String langage="Java"; public static void main(String[] args){ ConsoleTexte mc=new ConsoleTexte(); mc.ecritln(langage); String matiere="ISN"; for (int i=1;i<6;i=i+1){ mc.ecritln(matiere+" "+langage+" numero "+i); } } }Dans cet exemple :
Tout bloc contenu dans le programme Portee a accès à la variable langage (mas pas à matiere ni à i). langage est ici une variable globale du programme. Elle doit être déclarée static .
la variable matiere est accessible depuis le main et tout bloc qu'il contient. C'est une variable locale au main.
La variable i est accessible depuis la boucle for où elle est déclarée. C'est une variable "à usage unique" qui disparaît dès que le programme est sorti de la boucle. Cela permet de réutiliser le nom i pour faire autre chose ensuite, par exemple pour une autre boucle.