Bästa svaret
statiskt block {}
- statiska block används för att initialisera de statiska data i klassen, det skapar statiska resurser.
- statiska block körs bara en gång så snart klassen laddas in i minnet.
- statiska block körs före main () -metoden av JavaClass loader.
- En klass kan ha flera statiska block, som kommer att köras i samma ordning som de har skrivits in i programmet .
- statisk {}, den körs varje gång, när klassen laddas.
- Vi kan inte skriva statiska block i en statisk metod och en icke-statisk metod (statiska block skrivs separat )
- Endast statiska variabler kan vara tillgängliga i ett statiskt block.
- Vi kan kalla en statisk metod inuti ett statiskt block.
- Vi kan inte skapa några metoder inuti statiskt block.
- Icke-statiska variabler och icke-statiska metoder kan inte vara tillgängliga i en statiskt block.
- Om du försöker komma åt icke-statiska variabler eller metoder i ett statiskt block ger det ett kompileringsfel,
Kan inte göra en statisk hänvisning till den icke-statiska metoden wow () från typen staticblock
Tänk på nedanstående exempel på statiskt block.
- Det finns ett statiskt block {} inuti en klass.
- Det finns två statiska variabler ”ss, j” deklareras, där de nås inom statisk metod och i statiskt block
- En statisk metod disp (), skrivs och skriver ut den statiska variabeln inuti den.
- Denna metod kallas inuti ett statiskt block {}
- statiska variabler och statiska metoder kan endast tillgängligt i ett statiskt block
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) {
}
}
kontrollera utdata
statisk block anropas med värdet8
kör statiskt block före huvudmetod
Värde inuti statisk metod är 23
Svar
Statiska block kallas också som Statiska initialiseringsblock , en klass kan ha valfritt antal statiska block och de kan visas var som helst i Java-klassen.
Detta block körs när klassen är lo aded i minnet. Java runtime-systemet garanterar att statiska initialiseringsblock anropas i den ordning de visas i källkoden.
Exempel:
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");
}
}
Utgång:
Static block - 1
Static block - 2
Static block - 3
Main Method