Migliore risposta
blocco statico {}
- i blocchi statici vengono utilizzati per inizializzare i dati statici nella classe, crea risorse statiche.
- i blocchi statici vengono eseguiti solo una volta, non appena la classe viene caricata in memoria.
- i blocchi statici vengono eseguiti prima del metodo main () dal caricatore JavaClass.
- Una classe può avere più blocchi statici, che verranno eseguiti nella stessa sequenza in cui sono stati scritti nel programma .
- statico {}, viene eseguito ogni volta, quando la classe viene caricata.
- Non possiamo scrivere blocchi statici allinterno di un metodo statico e di un metodo non statico (i blocchi statici vengono scritti separatamente )
- Solo le variabili statiche possono essere accessibili allinterno di un blocco statico.
- Possiamo chiamare un metodo statico allinterno di un blocco statico.
- Non possiamo creare alcun metodo allinterno blocco statico.
- Le variabili non statiche e i metodi non statici non possono essere accessibili allinterno di un file blocco statico.
- Se si tenta di accedere a variabili o metodi non statici allinterno di un blocco statico, viene visualizzato un errore in fase di compilazione,
Impossibile fare un riferimento statico al metodo non statico wow () dal tipo staticblock
Considera lesempio di blocco statico seguente.
- Cè un blocco statico {} allinterno di una classe.
- Ci sono due variabili statiche dichiarate “ss, j”, in cui si accede allinterno del metodo statico e nel blocco statico
- Un metodo statico disp () viene scritto e stampa la variabile statica al suo interno.
- Questo metodo viene chiamato allinterno di un blocco statico {}
- variabili statiche e metodi statici possono essere accessibile solo allinterno di un blocco statico
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) {
}
}
controlla loutput
blocco statico viene invocato con il valore8
blocco statico runnin prima del metodo principale
Il valore allinterno del metodo statico è 23
Risposta
I blocchi statici sono anche chiamati Blocchi di inizializzazione statici , una classe può avere qualsiasi numero di blocchi statici e possono apparire ovunque allinterno della classe java.
Questo blocco viene eseguito quando la classe aggiunto nella memoria. Il sistema di runtime Java garantisce che i blocchi di inizializzazione statici vengano chiamati nellordine in cui appaiono nel codice sorgente.
Esempio:
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");
}
}
Risultato:
Static block - 1
Static block - 2
Static block - 3
Main Method