Mejor respuesta
bloque estático {}
- Los bloques estáticos se utilizan para inicializar los datos estáticos en la clase, crea recursos estáticos.
- Los bloques estáticos se ejecutan solo una vez, tan pronto como la clase se carga en la memoria.
- Los bloques estáticos se ejecutan antes que el método main () mediante el cargador JavaClass.
- Una clase puede tener varios bloques estáticos, que se ejecutarán en la misma secuencia en la que se han escrito en el programa. .
- static {}, se ejecuta cada vez que se carga la clase.
- No podemos escribir bloques estáticos dentro de un método estático y un método no estático (los bloques estáticos se escriben por separado )
- Solo se puede acceder a variables estáticas dentro de un bloque estático.
- Podemos llamar a un método estático dentro de un bloque estático.
- No podemos crear ningún método dentro de bloque estático.
- Las variables no estáticas y los métodos no estáticos no pueden ser accesibles dentro de un bloque estático.
- Si intenta acceder a variables o métodos no estáticos dentro de un bloque estático, se produce un error de tiempo de compilación,
No se puede hacer una referencia estática al método no estático wow () del tipo staticblock
Considere el siguiente ejemplo de bloque estático.
- Hay un bloque estático {} dentro de una clase.
- Hay dos variables estáticas «ss, j» declaradas, en las que se accede a ellas dentro del método estático y en el bloque estático
- Se escribe un método estático disp () e imprime la variable estática en su interior.
- Este método se llama dentro de un bloque estático {}
- variables estáticas y métodos estáticos pueden ser accesible solo dentro de un bloque estático
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) {
}
}
comprobar la salida
El bloque estático se invoca con el valor8
ejecutar un bloque estático antes del método principal
El valor dentro del método estático es 23
Respuesta
Los bloques estáticos también se denominan Bloques de inicialización estáticos , una clase puede tener cualquier número de bloques estáticos y pueden aparecer en cualquier lugar dentro de la clase java.
Este bloque se ejecuta cuando la clase es baja. añadido en la memoria. El sistema de tiempo de ejecución de Java garantiza que los bloques de inicialización estáticos se llamen en el orden en que aparecen en el código fuente.
Ejemplo:
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");
}
}
Resultado:
Static block - 1
Static block - 2
Static block - 3
Main Method