comprensión de bloques de inicialización estática
en Java, los bloques de inicialización estática proporcionan un mecanismo especial para inicializar campos estáticos dentro de una clase. Los campos estáticos se inicializan solo una vez y comparten el mismo valor en todas las instancias de una clase. Si bien es posible asignar valores a campos estáticos dentro de sus declaraciones, hay ciertos escenarios en los que este enfoque no es práctico.
¿por qué usar bloques de inicialización estática?
considerar una situación en la que el valor de un campo estático no puede determinarse en el punto de decepción. Por ejemplo, imagine que tiene un campo que representa una lista de conexiones de bases de datos, inicializadas según la configuración de la configuración. No puede inicializar directamente este campo dentro de su declaración porque la configuración aún no está disponible.
en tales casos, los bloques de inicialización estática entran en juego. Estos bloques se ejecutan durante la carga de clase y proporcionan una forma conveniente de inicializar los campos estáticos en función del contexto actual. Están encerrados dentro de los aparatos ortopédicos estáticos:
public static class Test { static { // Initialize static fields here } }
no estático vs. bloques estáticos
A diferencia de los bloques de inicialización estática, los bloques no estatales (también conocidos como bloques de inicialización de instancias) se ejecutan cada vez que se crea una instancia de la clase. Se utilizan para inicializar campos específicos de instancia o realizar otras operaciones de configuración.
Ejemplo
para ilustrar la diferencia entre bloques estáticos y no estáticos, considere el siguiente código:
Public Class Test { estático { System.out.println ("bloque estático ejecutado una vez"); } { System.out.println ("Bloque no estático ejecutado cada vez que se crea una instancia"); } public static void main (string [] args) { Prueba t1 = nueva test (); // Bloque no estático ejecutado Prueba t2 = nueva test (); // Bloque no estático ejecutado nuevamente } }public class Test { static { System.out.println("Static block executed once"); } { System.out.println("Non-static block executed each time an instance is created"); } public static void main(String[] args) { Test t1 = new Test(); // Non-static block executed Test t2 = new Test(); // Non-static block executed again } }Cuando ejecuta este código, verá la siguiente salida:
bloque estático ejecutado una vez Bloque no estático ejecutado cada vez que se crea una instancia Bloque no estático ejecutado cada vez que se crea una instancia
public class Test { static { System.out.println("Static block executed once"); } { System.out.println("Non-static block executed each time an instance is created"); } public static void main(String[] args) { Test t1 = new Test(); // Non-static block executed Test t2 = new Test(); // Non-static block executed again } }Como puede observar, el bloque estático se ejecuta solo una vez durante la carga de clase, mientras que el bloque no estático se ejecuta cada vez que se crea una instancia de la clase.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3