Duplicate possible:
Blocs d'initialisation statiques
Considérez ce qui suit code:
public class Test {
{
System.out.println("Empty block");
}
static {
System.out.println("Static block");
}
public static void main(String[] args) {
Test t = new Test();
}
}
Nous comprenons que le bloc statique serait exécuté, suivi du bloc vide. Mais le problème est que je n’ai jamais compris l’utilité réelle d’un bloc vide. Quelqu'un peut-il montrer un exemple réel dans lequel -
Ils ont deux objectifs très différents:
Notez que vous avez répondu à cette question à plusieurs reprises dans stackoverflow et qu'il serait judicieux de rechercher et d'examiner les questions similaires et leurs réponses. Par exemple: static-initialization-blocks
Le bloc statique est exécuté à chaque chargement de votre classe. Le bloc vide est exécuté chaque fois que vous instanciez votre classe. Essayez de comparer ces:
1.
public static void main(String[] args) {
Test t = new Test();
}
2.
public static void main(String[] args) {
}
Les sorties:
1.
Bloc statique
Bloc vide
2.
Bloc statique
En termes Layman, le bloc statique est uniquement appelé ne fois, quel que soit le nombre d'objets de ce type que vous créez.