Legjobb válasz
statikus blokk {}
- statikus blokkokat használnak az osztály statikus adatainak inicializálására, ez statikus erőforrásokat hoz létre.
- a statikus blokkokat csak egyszer hajtják végre, amint az osztály betöltődik a memóriába.
- a statikus blokkokat a main () metódus előtt hajtja végre a JavaClass betöltő.
- Egy osztálynak több Statikus blokkja lehet, amelyek ugyanabban a sorrendben fognak végrehajtani, ahogyan a programba be vannak írva. .
- statikus {}, minden alkalommal végrehajtásra kerül, amikor az osztály betöltődik.
- Nem írhatunk statikus blokkokat egy statikus és nem statikus módszer belsejébe (a statikus blokkokat külön írjuk. )
- Egy statikus blokkon belül csak statikus változók érhetők el.
- Egy statikus blokkon belül statikus metódust hívhatunk.
- Belsőleg nem hozhatunk létre metódust statikus blokk.
- A nem statikus változók és a nem statikus módszerek nem érhetők el a statikus blokk.
- Ha nem statikus változókhoz vagy metódusokhoz próbál hozzáférni egy statikus blokkon belül, az fordítási idő hibát eredményez,
Nem lehet statikus hivatkozás a nem statikus wow () metódusra a staticblock típusból
Tekintsük az alábbi statikus blokk példát.
- Egy statikus blokk van {} egy osztályon belül.
- Két “ss, j” statikus változó van deklarálva, amelyekben a statikus módszeren belül és a statikus blokkban érhetők el
- Egy statikus metódus disp () meg van írva, és kinyomtatja a benne lévő statikus változót.
- Ezt a módszert egy statikus blokkon belül hívják meg. {}
- statikus változók és statikus módszerek csak egy statikus blokkon belül érhető el
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) {
}
}
ellenőrizze a kimenetet
a statikus blokkot a8-as értékkel hívják meg
a statikus blokk futtatása a fő módszer előtt
A statikus módszeren belüli érték 23
Válasz
A statikus blokkokat statikus inicializációs blokkokként , egy osztálynak tetszőleges számú statikus blokkja lehet, és bárhol megjelenhetnek a java osztályon belül.
Ez a blokk akkor kerül végrehajtásra, ha az osztály lo emlékezetében adózott. A Java futásidejű rendszer garantálja, hogy a statikus inicializáló blokkokat a forráskódban megjelenő sorrendben hívják meg.
Példa:
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");
}
}
Kimenet:
Static block - 1
Static block - 2
Static block - 3
Main Method