// Orden de ejecución: (Prioridad de alta a baja).
Bloque de código estático> Método Mian> Bloque de código de construcción> Método de construcción.
El bloque de código estático se ejecuta solo una vez. El bloque de código construido se ejecuta cada vez que se crea el objeto.
1. Bloques de código ordinario
public static void main (String [] args) {/ * bloque de código ordinario: * directamente definido en el método o declaración "{Declaración de ejecución de código ordinario}" aparece en el método o declaración, se denomina bloque de código ordinario. *El orden de ejecución de bloques de código ordinarios está determinado por el orden en el que aparecen en el código: "Primero aparecen primero" */{System.out.println ("Aquí está el bloque de código ordinario A");} // nuevo A (); {System.out.println ("Aquí está el bloque de código ordinario B");}} Resultado de la ejecución: aquí está el bloque de código normal a
Aquí está el bloque de código normal B
2. Bloques de código estático y bloques de código de construcción
Bloques de código declarados usando la palabra clave estática en Java.
A menudo se usa para inicializar clases. Cada bloque de código estático se ejecutará solo una vez (la clase se ejecuta cuando se carga en la memoria, y la clase ya existe después de que la clase se carga en la memoria). Dado que el JVM ejecutará bloques de código estático al cargar la clase, el bloque de código estático se ejecutará antes del método principal. Si la clase contiene múltiples bloques de código estático, primero se ejecutará por "el código definido primero, y luego el código definido se ejecutará más adelante.
PD:
1 Los bloques de código estático no pueden existir en ningún cuerpo de método.
2 Los bloques de código estático no pueden acceder directamente a variables de instancia estática y métodos de instancia, y deben acceder a través del objeto de instancia de la clase.
Bloque de construcción: un bloque de código que se define directamente en la clase y no tiene una palabra clave estática se llama bloque de código de construcción {}.
El bloque de código del constructor se llama al crear un objeto, y cada vez que se crea el objeto, se llama, y el orden de ejecución del bloque de código del constructor tiene prioridad sobre el constructor de clase.
Estructura de clase pública {{System.out.println ("Aquí está un bloque de código normal"); // Hay un constructor predeterminado en todas las clases. El bloque de código aquí es un bloque de código de constructor, que se ejecuta cuando el objeto en la clase se crea} public static void main (string [] args) {/ * bloque de código ordinario: * directamente definido en el método o declaración "{Declaración de ejecución del código ordinario}" aparece en el método o la declaración, se llama bloque de código ordinario. *El orden de ejecución de bloques de código ordinarios está determinado por el orden en el que aparecen en el código: "aparecer primero" */{System.out.println ("Aquí está el bloque de código ordinario a");} nueva estructura (); // El bloque de código estático no ejecuta cuando la segunda clase se carga // nuevo A (); {System.out.println ("Aquí está el código de código ordinario ordinario es ordinaria ordinaria ordinaria ordinaria ordinaria ordinaria ordinaria B ");}} static {System.out.println (" Aquí está el bloque de código estático ");}} Resultados de la ejecución:
Aquí está el bloque de código estático // preferencial a la función principal aquí está el bloque de código normal A
Aquí hay un bloque de código normal // El objeto en la clase se ejecuta cuando se crea. Cada vez que se crea, se agrega la nueva estructura (); El resultado de la ejecución es:
Aquí está el bloque de código normal B
3. Resumen
Estructura de clase pública {{System.out.println ("Aquí está un bloque de código normal");} public static void main (string [] args) {{System.out.println ("Aquí está un bloque de código normal a");} // new Structure (); // new Structure (); new A (); {System.Println ("aquí es un código normal de código normal es un código normal (bloque normal es un código normal (bloque normal es un código normal) B ");}} static {System.out.println (" Aquí está un bloque de código estático ");}} clase A {static {System.out.println (" Aquí está el código estático normal del código 1 en un ");} {System.out.println (" Aquí está el código de código normal 1 en un ");} A");}} Resultados de la ejecución:
Aquí está el bloque de código estático aquí está el bloque de código normal A
Aquí está el código de código estático normal 1 en un
Aquí está el código de código normal 1 en un
Aquí está el código de código normal 2 en un
Aquí está el bloque de código normal B
Resumen de prioridad: bloque de código estático> main ()> Bloque de código de construcción