Nejlepší odpověď
statický blok {}
- statické bloky se používají k inicializaci statických dat ve třídě, vytvářejí statické prostředky.
 - statické bloky se provádějí pouze jednou, jakmile je třída načtena do paměti.
 - statické bloky jsou spouštěny před metodou main () zavaděčem JavaClass.
 - Třída může mít více statických bloků, které se budou provádět ve stejném pořadí, v jakém byly zapsány do programu .
 - static {}, provádí se pokaždé, když se načte třída.
 - Nemůžeme psát statické bloky uvnitř statické metody a nestatické metody (statické bloky jsou psány samostatně )
 - Uvnitř statického bloku mohou být přístupné pouze statické proměnné.
 - Můžeme volat statickou metodu uvnitř statického bloku.
 - Nemůžeme uvnitř vytvářet žádné metody statický blok.
 - Nestatické proměnné a nestatické metody nemohou být přístupné uvnitř a statický blok.
 - Pokud se pokusíte získat přístup k nestatickým proměnným nebo metodám uvnitř statického bloku, zobrazí se chyba kompilace,
 
Nelze vytvořit statický odkaz na nestatickou metodu wow () z typu staticblock
Zvažte níže uvedený příklad statického bloku.
- Ve třídě je jeden statický blok {}.
 - Jsou deklarovány dvě statické proměnné „ss, j“, ve kterých jsou přístupné uvnitř statické metody a ve statickém bloku
 - Statická metoda disp (), je zapsána a vytiskne uvnitř ní statickou proměnnou.
 - Tato metoda se nazývá uvnitř statického bloku {}
 - statické proměnné a statické metody lze přístupné pouze uvnitř statického bloku
 
 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) { 
   
  } 
   
 } 
zkontrolovat výstup
je vyvolán statický blok s hodnotou8
spustit statický blok před hlavní metodou
Hodnota uvnitř statické metody je 23
Odpověď
Statické bloky se také nazývají Statické inicializační bloky , třída může mít libovolný počet statických bloků a mohou se objevit kdekoli uvnitř třídy Java.
Tento blok se provede, když je třída lo aded v paměti. Běhový systém Java zaručuje, že jsou statické inicializační bloky volány v pořadí, v jakém se objevují ve zdrojovém kódu.
Příklad:
 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");  
  }  
 }  
Výstup:
 Static block - 1 
 Static block - 2 
 Static block - 3 
 Main Method