Meilleure réponse
bloc statique {}
- les blocs statiques sont utilisés pour initialiser les données statiques dans la classe, cela crée des ressources statiques.
- les blocs statiques ne sont exécutés quune seule fois, dès que la classe est chargée en mémoire.
- Les blocs statiques sont exécutés avant la méthode main () par le chargeur JavaClass.
- Une classe peut avoir plusieurs blocs statiques, qui sexécuteront dans la même séquence dans laquelle ils ont été écrits dans le programme .
- static {}, il est exécuté à chaque fois, lorsque la classe se charge.
- Nous ne pouvons pas écrire de blocs statiques à lintérieur dune méthode statique et dune méthode non statique (les blocs statiques sont écrits séparément )
- Seules les variables statiques peuvent être accessibles à lintérieur dun bloc statique.
- Nous pouvons appeler une méthode statique à lintérieur dun bloc statique.
- Nous ne pouvons créer aucune méthode à lintérieur bloc statique.
- Les variables non statiques et les méthodes non statiques ne peuvent pas être accessibles à lintérieur dun bloc statique.
- Si vous essayez daccéder à des variables ou des méthodes non statiques à lintérieur dun bloc statique, cela donne une erreur de compilation,
Impossible de faire une référence statique à la méthode non statique wow () à partir du type staticblock
Prenons lexemple ci-dessous de bloc statique.
- Il y a un bloc statique {} à lintérieur dune classe.
- Il y a deux variables statiques « ss, j » déclarées, dans lesquelles elles sont accessibles à lintérieur dune méthode statique et dans un bloc statique
- Une méthode statique disp () est écrite et imprime la variable statique à lintérieur.
- Cette méthode est appelée à lintérieur dun bloc statique {}
- les variables statiques et les méthodes statiques peuvent être accessible uniquement à lintérieur dun bloc statique
public class staticblock {
static int ss=23; // initialize the static variable with value;
public static void disp() {
System.out.println("runnin static block before main method");
System.out.println("Value inside static method is "+ss);
}
static int j;
static // static block
{
j=8;
System.out.println("static block is invoked with the value"+j); // access the static variable inside static block
disp(); // calling the static method inside static block
}
public static void main(String[] args) {
}
}
vérifier la sortie
bloc statique est appelé avec la valeur8
bloc statique runnin avant la méthode principale
La valeur dans la méthode statique est 23
Réponse
Les blocs statiques sont également appelés Blocs dinitialisation statiques , une classe peut avoir nimporte quel nombre de blocs statiques et ils peuvent apparaître nimporte où dans la classe java.
Ce bloc est exécuté lorsque la classe est lo ajouté en mémoire. Le système dexécution Java garantit que les blocs dinitialisation statiques sont appelés dans lordre dans lequel ils apparaissent dans le code source.
Exemple:
public class Solution{
static {
System.out.println("Static block - 1");
}
static {
System.out.println("Static block - 2");
}
public static void main(String[] args){
System.out.println("Main Method");
}
static {
System.out.println("Static block - 3");
}
}
Résultat:
Static block - 1
Static block - 2
Static block - 3
Main Method