// Ordonnance d'exécution: (priorité de haut à bas.)
Bloc de code statique> Méthode MIAN> Bloc de code de construction> Méthode de construction.
Le bloc de code statique n'est exécuté qu'une seule fois. Le bloc de code construit est exécuté chaque fois que l'objet est créé.
1. Blocs de code ordinaires
public static void main (String [] args) {/ * Bloc de code ordinaire: * Directement défini dans la méthode ou l'instruction "{Instruction d'exécution de code ordinaire}" apparaît dans la méthode ou l'instruction, il est appelé le bloc de code ordinaire. * L'ordre d'exécution des blocs de code ordinaire est déterminé par l'ordre dans lequel ils apparaissent dans le code - "First apparaît d'abord" * / {System.out.println ("voici le bloc de code ordinaire A");} // new A (); {System.out.println ("Voici le bloc de code ordinaire B");}} Résultat de l'exécution: voici le bloc de code normal A
Voici le bloc de code normal B
2. Blocs de code statique et blocs de code de construction
Blocks de code déclaré en utilisant un mot-clé statique dans Java.
Il est souvent utilisé pour initialiser les classes. Chaque bloc de code statique ne sera exécuté qu'une seule fois (la classe est exécutée lors du chargement en mémoire, et la classe existe déjà après le chargement de la classe en mémoire). Étant donné que le JVM exécutera les blocs de code statique lors du chargement de la classe, le bloc de code statique sera exécuté avant la méthode principale. Si la classe contient plusieurs blocs de code statique, il sera d'abord exécuté par "le code défini d'abord, puis le code défini sera exécuté ultérieurement.
PS:
1 Les blocs de code statiques ne peuvent exister dans aucun corps de méthode.
2 Les blocs de code statiques ne peuvent pas accéder directement aux variables d'instance statique et aux méthodes d'instance, et doivent être accessibles via l'objet d'instance de la classe.
Bloc de construction: un bloc de code qui est directement défini dans la classe et qui n'a pas de mot-clé statique est appelé {} bloc de code de construction.
Le bloc de code du constructeur est appelé lors de la création d'un objet, et chaque fois que l'objet est créé, il est appelé et l'ordre d'exécution du bloc de code du constructeur a priorité sur le constructeur de classe.
Structure de classe publique {{System.out.println ("Voici un bloc de code normal"); // Il y a un constructeur par défaut dans toutes les classes. Le bloc de code ici est un bloc de code constructeur, qui est exécuté lorsque l'objet dans la classe est créé} public static void main (String [] args) {/ * Bloc de code ordinaire: * Directement défini dans la méthode ou l'instruction "{Instruction d'exécution du code ordinaire}" apparaît dans la méthode ou l'instruction, elle est appelée bloc de code ordinaire. * L'ordre d'exécution des blocs de code ordinaire est déterminé par l'ordre dans lequel ils apparaissent dans le code - "Apparaît d'abord d'abord" * / {System.out.println ("Voici le bloc de code ordinaire A");} New Structure (); // Le bloc de code statique ne s'exécute pas lorsque la deuxième classe charge // new a (); {System.out.println ("ici est un bloc de code ordinaire // B ");}} statique {System.out.println (" Voici le bloc de code statique ");}} Résultats de l'exécution:
Voici le bloc de code statique // préférentiel à la fonction principale ici est le bloc de code normal A
Voici un objet Normal Code Block // dans la classe est exécuté lorsqu'il est créé. Chaque fois qu'il est créé, la nouvelle structure () est ajoutée; Le résultat de l'exécution est:
Voici le bloc de code normal B
3. Résumé
Structure de classe publique {{System.out.println ("Voici un bloc de code normal");} public static void main (String [] args) {{System.out.println ("voici un bloc de code normal a");} // new Structure (); // new Structure (); new a (); {system.out.println ("ici est un bloc de code normal ();); {system.out.println (" ici est un bloc de code normal ();); B ");}} statique {System.out.println (" Voici un bloc de code statique ");}} classe A {statique {System.out.println (" Voici le bloc de code statique normal 1 dans un ")");} {System.out.println ("ici est normal Block 1 dans un") ");}} {System.out.out.Println (" Ici est normal Block de code 2 dans un ") Block Norm UN");}} Résultats de l'exécution:
Voici le bloc de code statique ici est le bloc de code normal A
Voici le bloc de code statique normal 1 dans un
Voici le bloc de code normal 1 dans un
Voici le bloc de code normal 2 dans un
Voici le bloc de code normal B
Résumé de la priorité: Bloc de code statique> Main ()> Bloc de code de construction