Bedste svar
statisk blok {}
- statiske blokke bruges til at initialisere de statiske data i klassen, det skaber statiske ressourcer.
- statiske blokke udføres kun en gang, så snart klassen er indlæst i hukommelsen.
- statiske blokke udføres før main () metoden af JavaClass loader.
- En klasse kan have flere statiske blokke, som udføres i samme rækkefølge, som de er skrevet i programmet .
- statisk {}, det udføres hver gang, når klassen indlæses.
- Vi kan ikke skrive statiske blokke inde i en statisk metode og en ikke-statisk metode (statiske blokke skrives separat )
- Kun statiske variabler kan være tilgængelige i en statisk blok.
- Vi kan kalde en statisk metode inde i en statisk blok.
- Vi kan ikke oprette nogen metoder indeni statisk blok.
- Ikke-statiske variabler og ikke-statiske metoder kan ikke være tilgængelige i en statisk blok.
- Hvis du forsøger at få adgang til ikke-statiske variabler eller metoder inde i en statisk blok, giver det en kompileringstidsfejl,
Kan ikke referere statisk til den ikke-statiske metode wow () fra typen staticblock
Overvej nedenstående eksempel på statisk blok.
- Der er en statisk blok {} inde i en klasse.
- Der er to statiske variabler “ss, j” erklæret, hvor de er tilgængelige inden for statisk metode og i statisk blok
- En statisk metode disp (), skrives og udskriver den statiske variabel indeni den.
- Denne metode kaldes inde i en statisk blok {}
- statiske variabler og statiske metoder kan være kun tilgængelig inde i en statisk blok
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) {
}
}
kontroller output
statisk blok påberåbes med værdien8
runnin statisk blok før hovedmetode
Værdi inden for statisk metode er 23
Svar
Statiske blokke kaldes også som Statiske initialiseringsblokke , en klasse kan have et hvilket som helst antal statiske blokke, og de kan vises hvor som helst inden for java-klassen.
Denne blok bliver udført, når klassen er lo aded i hukommelsen. Java runtime-systemet garanterer, at statiske initialiseringsblokke kaldes i den rækkefølge, de vises i kildekoden.
Eksempel:
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");
}
}
Output:
Static block - 1
Static block - 2
Static block - 3
Main Method