# Programmation Java/Bloc de portée

* Introduction
* La notion de machine virtuelle
* Installation
** NetBeans
** Eclipse
** Visual Studio Code
* Bases du langage
** Premier programme
** Commentaires
** Types de base
** Opérateurs
** Conditions
** Bloc de portée
** Itérations
** Tableaux
* Les classes en Java
** Membres
** Modificateurs d'accès
** Héritage
** Encapsulation
** Polymorphisme
** Classes abstraites
** Interfaces
** Classes internes
** Transtypage
** Types génériques
** Instanciation et cycle de vie
** « this »
** Objets comparables et clés
** Énumérations
** Exceptions
** Packages
* Classes de base
** Collections
** Nombre de taille arbitraire
** Tags Javadoc
** Annotations
** Entrées sorties
** Threads et synchronisation
** Méthodes natives
** Réflexion
** Regex
** JUnit
* Conclusion
* Exemples en Java
** Générer un carré magique
** Générer un triangle de Sierpiński
** XML
** Swing
*** Un premier exemple
*** Formulaire avec boutons sur image
*** Calcul de somme
*** Calcul de distance
* Annexes
** Les outils de base fournis avec le Java Development Kit
** Créer une archive Java
** Paramétrer la JVM
** Liste des mots réservés
** Débogage
** Java et les autres langages
* Introduction
* La notion de machine virtuelle
* Installation
** NetBeans
** Eclipse
** Visual Studio Code
* Bases du langage
** Premier programme
** Commentaires
** Types de base
** Opérateurs
** Conditions
** Bloc de portée
** Itérations
** Tableaux
* Les classes en Java
** Membres
** Modificateurs d'accès
** Héritage
** Encapsulation
** Polymorphisme
** Classes abstraites
** Interfaces
** Classes internes
** Transtypage
** Types génériques
** Instanciation et cycle de vie
** « this »
** Objets comparables et clés
** Énumérations
** Exceptions
** Packages
* Classes de base
** Collections
** Nombre de taille arbitraire
** Tags Javadoc
** Annotations
** Entrées sorties
** Threads et synchronisation
** Méthodes natives
** Réflexion
** Regex
** JUnit
* Conclusion
* Exemples en Java
** Générer un carré magique
** Générer un triangle de Sierpiński
** XML
** Swing
*** Un premier exemple
*** Formulaire avec boutons sur image
*** Calcul de somme
*** Calcul de distance
* Annexes
** Les outils de base fournis avec le Java Development Kit
** Créer une archive Java
** Paramétrer la JVM
** Liste des mots réservés
** Débogage
** Java et les autres langages
[ Modifier le sommaire ]
Dans le code des méthodes, il est possible de créer des blocs de code entre accolades sans aucune construction spécifique avant (if, while, déclaration de méthode, ...). De tels blocs sont des blocs permettant de limiter la portée des variables.
Ce chapitre explique son utilité à travers différentes utilisations possibles.

## Réutilisation de noms de variables

La limitation de la portée permet de réutiliser les noms de variables.
Exemple :
L'ordre peut avoir de l'importance comme dans l'exemple suivant :

## Restreindre la portée d'une variable

Restreindre la portée d'une variable en encadrant le bloc de code sensé être le seul à l'utiliser permet de tester que c'est le cas. Cela permet ensuite, par exemple, de déplacer ce bloc dans une méthode séparée pour le réutiliser.

## Réduire la quantité de pile utilisée

Les variables qui deviennent hors de portée libère immédiatement de l'espace pour d'autres variables locales dans la pile. Il est évidemment non recommandé d'avoir beaucoup de variables locales. Cependant réduire la quantité de pile est important pour les méthodes récursives : chaque nouvel appel prend une quantité importante de pile.

## Réduire la quantité de mémoire utilisée

L'espace mémoire occupé par les objets alloués et référencés uniquement par les variables d'un bloc devient libérable quand ces variables deviennent hors de portée.
Exemple : Génération de plusieurs images