Cel mai bun răspuns
bloc static {}
- blocurile statice sunt utilizate pentru a inițializa datele statice din clasă, creează resurse statice.
- blocurile statice sunt executate o singură dată, imediat ce clasa este încărcată în memorie.
- blocurile statice sunt executate înainte de metoda main () de către încărcătorul JavaClass.
- O clasă poate avea mai multe blocuri statice, care se vor executa în aceeași secvență în care au fost scrise în program .
- static {}, se execută de fiecare dată, când se încarcă clasa.
- Nu putem scrie blocuri statice în interiorul unei metode statice și metode nestatice (blocurile statice sunt scrise separat )
- Numai variabilele statice pot fi accesibile în interiorul unui bloc static.
- Putem apela o metodă statică în interiorul unui bloc static.
- Nu putem crea metode în interior bloc static.
- Variabilele nestatice și metodele nestatice nu pot fi accesibile în interiorul unui bloc static.
- Dacă încercați să accesați variabile sau metode nestatice în interiorul unui bloc static, acesta dă o eroare de timp de compilare,
Nu se poate face o referință statică la metoda nestatică wow () din tipul staticblock
Luați în considerare exemplul de mai jos al blocului static.
- Există un bloc static {} în interiorul unei clase.
- Există două variabile statice declarate „ss, j”, în care sunt accesate în interiorul metodei statice și în blocul static
- O metodă statică disp (), este scrisă și imprimă variabila statică din interiorul său.
- Această metodă este apelată într-un bloc static {}
- variabilele statice și metodele statice pot fi accesibil numai în interiorul unui bloc static
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) {
}
}
verificați ieșirea
blocul static este invocat cu value8
blocul static runnin înainte de metoda principală
Valoarea din interiorul metodei statice este 23
Răspuns
Blocurile statice sunt numite și ca Blocuri de inițializare statică , o clasă poate avea orice număr de blocuri statice și pot apărea oriunde în clasa java.
Acest bloc se execută când clasa este lo adăugat în memorie. Sistemul Java runtime garantează că blocurile de inițializare statice sunt apelate în ordinea în care apar în codul sursă.
Exemplu:
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");
}
}
Ieșire:
Static block - 1
Static block - 2
Static block - 3
Main Method