Maison > Java > JavaBase > Quel est l'ordre d'exécution des blocs de code statiques, des blocs de code de construction et des méthodes de construction ?

Quel est l'ordre d'exécution des blocs de code statiques, des blocs de code de construction et des méthodes de construction ?

青灯夜游
Libérer: 2022-01-25 11:41:17
original
15089 Les gens l'ont consulté

L'ordre d'exécution est le suivant : exécutez d'abord le "bloc de code statique", puis exécutez le "bloc de code de construction", et enfin exécutez le "bloc de code de construction". Les blocs de code statiques sont au niveau de la classe, tandis que les blocs de code structurels et les méthodes de construction sont au niveau de l'instance, de sorte que les blocs de code statiques sont exécutés en premier et parce que les blocs de code structurels sont indépendants et doivent s'appuyer sur un support pour s'exécuter, le code structurel ; les blocs de code doivent être placés dans la structure avant la méthode.

Quel est l'ordre d'exécution des blocs de code statiques, des blocs de code de construction et des méthodes de construction ?

L'environnement d'exploitation de ce tutoriel : système windows7, version java8, ordinateur DELL G3.

Les blocs de code de construction, les blocs de code statiques et les méthodes de construction sont trois blocs de code différents dans une classe, alors quelles sont les différences entre eux ?

1. Introduction à trois types de blocs de code

Bloc de code statique : déclaré avec straitc, exécuté lorsque jvm charge la classe, exécuté une seule fois

Bloc de code de construction : défini directement avec {} dans la classe, exécuté à chaque fois qu'un l'objet est créé.

Priorité de l'ordre d'exécution : bloc statique, main(), bloc de construction, méthode de construction.

class A
{
    //构造代码块
    {
        System.out.println("构造代码块A");
    }
    //静态代码块
    static
    {
        System.out.println("静态代码块A");
    }
    //构造方法
    public A()
    {
        System.out.println("构造方法A");
    }
}
Copier après la connexion

Deuxième et troisième ordre d'exécution

Afin de clarifier l'ordre d'exécution des trois, nous instancions la classe A et testons respectivement une instance unique et plusieurs instances.

2.1 Instance unique

class Demo
{
    public static void main(String[] args)
    {
        new A();
    }
}
Copier après la connexion

2.2 Instances multiples

class Demo
{
    public static void main(String[] args)
    {
        new A();
        new A();
        new A();
    }
}
Copier après la connexion

L'ordre dans le système d'héritage

class B extends A
{
    //构造代码块
    {
        System.out.println("构造代码块B");
    }
    //静态代码块
    static
    {
        System.out.println("静态代码块B");
    }
    //构造方法
    public B()
    {
        System.out.println("构造方法B");
    }
}

class Demo
{
    public static void main(String[] args)
    {
        new B();
    }
}
Copier après la connexion

Résumé

. 1. Lors de la création du processus d'un objet, l'ordre d'exécution des trois est : bloc de code statique --> Bloc de code de construction --> Méthode de construction : elle est effectuée lors de la troisième étape d'initialisation du processus de chargement de la classe. l'objectif principal est d'attribuer des valeurs initiales aux variables de classe.

2. Bloc de code de construction : Il est indépendant et doit être attaché à un support pour s'exécuter. Java placera le bloc de code de construction devant chaque méthode de construction pour instancier certaines variables d'instance courantes et réduire la quantité de code.
3.Méthode Constructeur : utilisée pour instancier des variables.


1 est au niveau de la classe, 2 et 3 sont au niveau de l'instance, naturellement 1 est prioritaire sur 23.

Comprenons une chose maintenant : l'utilisation active d'une sous-classe entraînera une utilisation active de sa classe parent, donc bien que la sous-classe soit instanciée, elle conduira également à l'initialisation et à l'instanciation de la classe parent, et c'est mieux que l'exécution de la sous-classe.

2. Chaque fois qu'un objet est créé, le bloc de code de construction et la méthode de construction seront exécutés une fois ; quel que soit le nombre d'objets créés, le bloc de code statique n'est exécuté qu'une seule fois lorsque le premier objet est créé ; Créez des objets de sous-classe , le bloc de code statique de la sous-classe est exécuté après le bloc de code statique de la classe parent, mais a priorité sur le bloc de code de construction et la méthode de construction de la classe parent

4. Lors de la création d'un objet de sous-classe, la construction ; Le bloc de code de la sous-classe est exécuté après la classe parent. Exécuté après la construction de la méthode.

Tutoriels vidéo associés recommandés :
Tutoriel vidéo Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal