Maison > Java > javaDidacticiel > Pourquoi utiliser des blocs d'initialisation statiques en Java ?

Pourquoi utiliser des blocs d'initialisation statiques en Java ?

Barbara Streisand
Libérer: 2024-12-20 17:46:14
original
869 Les gens l'ont consulté

Why Use Static Initialization Blocks in Java?

Blocs d'initialisation statiques : pourquoi un bloc séparé ?

Vous avez peut-être rencontré le concept de « blocs d'initialisation statiques » en Java. Ils sont destinés à répondre à des scénarios dans lesquels l'attribution de valeurs à des champs statiques ne peut pas être effectuée sur une seule ligne. Cependant, vous vous demandez peut-être pourquoi un bloc spécial est nécessaire à cette fin.

En Java, les blocs non statiques sont exécutés à chaque fois qu'une nouvelle instance de la classe est créée. Les blocs statiques, en revanche, ne sont exécutés qu’une seule fois lorsque la classe elle-même est initialisée. Cela est vrai quel que soit le nombre d'objets de cette classe particulière que vous créez.

Considérez l'exemple suivant :

public class Test {

    static {
        System.out.println("Static");
    }

    {
        System.out.println("Non-static block");
    }

    public static void main(String[] args) {
        Test t = new Test();
        Test t2 = new Test();
    }
}
Copier après la connexion

Sortie :

Static
Non-static block
Non-static block
Copier après la connexion

Dans cet exemple, le bloc statique contenant "Static" n'est exécuté qu'une seule fois lors du chargement initial de la classe Test. Le bloc non statique contenant "Non-static block" est exécuté à chaque fois qu'une nouvelle instance (t et t2) de la classe Test est créée.

Par conséquent, utiliser un bloc d'initialisation statique permet d'effectuer des actions spécifiques ou attribuez des valeurs aux champs statiques une seule fois lors de l'initialisation de la classe, tandis que les blocs non statiques sont utilisés pour les tâches qui doivent être effectuées à chaque fois qu'un objet de la classe est instancié.

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!

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal