//Ordre d'exécution : (Priorité de haut en 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 de construction est exécuté à chaque fois qu'un objet est créé.
1. Bloc de code ordinaire
public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块。 *普通代码块执行顺序由他们在代码中出现的次序决定--“先出现先执行” * */ { System.out.println("这里是普通代码块A"); } //new A(); { System.out.println("这里是普通代码块B"); } }
Résultat de l'exécution : Ceci est le bloc de code ordinaire A
Ceci est le bloc de code ordinaire B
2. Blocs de code statiques et blocs de code construits
Blocs de code déclarés à l'aide du mot-clé static en java.
est souvent utilisé pour initialiser les classes. Chaque bloc de code statique ne sera exécuté qu'une seule fois (lorsque la classe est chargée en mémoire, la classe existe déjà après le chargement de la classe en mémoire) car la JVM exécutera du code statique. lors du chargement du bloc de code de classe, le bloc de code statique est donc exécuté avant la méthode principale. Si la classe contient plusieurs blocs de code statiques, le code défini en premier sera exécuté en premier, et le code défini ultérieurement sera exécuté
ps :
1 Les blocs de code statiques ne peuvent exister dans aucune méthode. body.
2 Les blocs de code statiques ne peuvent pas accéder directement aux variables d'instance statiques et aux méthodes d'instance. Ils doivent être accessibles via l'objet d'instance de la classe : directement défini dans la classe sans ajouter de bloc de code statique. est appelé le bloc de code de construction {}. Le bloc de code de construction est appelé lors de la création de l'objet, et est appelé à chaque fois que l'objet est créé, et l'ordre d'exécution du bloc de code de construction a priorité sur le constructeur de classe
. Résultat de l'exécution :public class structure { { System.out.println("这里是普通代码块");//所有类中有一个默认的构造函数,这里的代码块为构造代码块,在类中的对象被创建时执行 } public static void main(String[] args) { /*普通代码块: *直接定义在在方法或语句中出现”{普通代码的执行语句}“的就称为普通代码块。 *普通代码块执行顺序由他们在代码中出现的次序决定--“先出现先执行” * */ { System.out.println("这里是普通代码块A"); } new structure();//第二次类加载时静态代码块不执行 //new A(); { System.out.println("这里是普通代码块B"); } } static{ System.out.println("这里是静态代码块"); } }Ceci est un bloc de code statique // a priorité sur la fonction principale
Ceci est un bloc de code ordinaire A
Ceci est un code ordinaire block/ /Exécuter lorsque l'objet de la classe est créé, et l'exécuter une fois à chaque création(); Le résultat de l'exécution est :
Voici le bloc de code ordinaire. B
public class structure { { System.out.println("这里是普通代码块"); } public static void main(String[] args) { { System.out.println("这里是普通代码块A"); } //new structure(); //new structure(); new A(); { System.out.println("这里是普通代码块B"); } } static{ System.out.println("这里是静态代码块"); } } class A{ static{ System.out.println("这里是A中的普静态代码块1"); } { System.out.println("这里是A中的普通代码块1"); } { System.out.println("这里是A中的普通代码块2"); } }Il s'agit du bloc de code statique
C'est le bloc de code ordinaire A
Voici le bloc de code statique ordinaire 1 dans A
Voici le bloc de code ordinaire 2 dans A
Voici le bloc de code ordinaire B
Résumé du niveau de priorité : bloc de code statique>Main()>Bloc de code construit
Pour une analyse plus approfondie des blocs de code ordinaires, des blocs de code construits et des blocs de code statiques en Java, faites attention au site Web PHP chinois >