325 votes

Bloc statique en Java

Je cherchais sur certains code l’autre jour et je suis tombé sur :

En venant de C++, je n’avais aucune idée pourquoi qui était là. Ce n’est pas une erreur parce que le code compilé fine. Qu’est-ce « statique » bloc de code ?

362voto

Joachim Sauer Points 133411

C'est un initialiseur statique. C'est exécutée lorsque la classe est chargée (ou initialisé, pour être précis, mais vous ne remarquerez pas la différence).

Il peut être considéré comme un "constructeur de la classe".

Notez qu'il existe également d'instance initialiseurs, qui regardent la même chose, sauf qu'ils n'ont pas l' static mot-clé. Ces actions sont menées en plus le code dans le constructeur, lorsqu'une nouvelle instance de l'objet est créé.

104voto

aioobe Points 158466

C'est un initialiseur statique. C'est exécutée lorsque la classe est chargée et un bon endroit pour mettre de l'initialisation des variables statiques.

À partir de http://java.sun.com/docs/books/tutorial/java/javaOO/initial.html

Une classe peut avoir un nombre quelconque d'initialisation statique blocs, et ils peuvent apparaître n'importe où dans le corps de la classe. Le système d'exécution de garanties que l'initialisation statique blocs sont appelés dans l'ordre qu'ils apparaissent dans le code source.

Si vous avez une classe statique de recherche de carte, il pourrait ressembler à ceci

class MyClass {
    static Map<Double, String> labels = new HashMap<Double, String>();
    static {
        labels.put(5.5, "five and a half");
        labels.put(7.1, "seven point 1");
    }
    //...
}

Il est utile depuis la champ statique pourrait ne pas avoir été initialisé à l'aide d' labels = .... Il doit appeler la méthode put en quelque sorte.

74voto

Simon Lehmann Points 5442

C’est un bloc de code qui est exécuté lorsque la classe est chargée par un chargeur de classe. Il est censé faire l’initialisation de membres statiques de la classe.

Il est également possible d’écrire les initialiseurs non statique, qui ont l’air encore plus étranges :

17voto

user3777803 Points 11

Bloc statique peut être utilisé pour montrer qu’un programme peut fonctionner sans fonction principale aussi.

6voto

Zahid Hussain Points 7

bloc statique s’exécute une fois dans le cycle de vie de n’importe quel programme une autre propriété de bloc statique qu’il s’exécute avant la méthode principale

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X