Maison >Java >javaDidacticiel >Quelle est la différence entre les blocs de code d'initialisation statiques et non statiques en Java ?

Quelle est la différence entre les blocs de code d'initialisation statiques et non statiques en Java ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-21 09:45:10508parcourir

What's the Difference Between Static and Non-Static Initialization Code Blocks in Java?

Blocs de code d'initialisation statiques ou non statiques

En Java, le mot-clé static peut être utilisé pour déclarer des variables et des méthodes au niveau de la classe qui sont accessibles sans créer d’instance de la classe. Cependant, il est également possible d'utiliser du statique avec des blocs de code qui ne font partie d'aucune fonction au sein de la classe.

Bloc de code d'initialisation de classe

Une classe le bloc de code d'initialisation est déclaré à l'aide du modificateur static. Il est exécuté lorsque la classe est chargée en mémoire et est utilisé pour initialiser des variables statiques et effectuer d'autres tâches au niveau de la classe. Par exemple :

public class Test {
    private static int a = 5;
    static {
        System.out.println("Class initialization code executed");
    }
}

Le bloc de code d'initialisation de la classe sera exécuté avant la création de toute instance de la classe Test, et la variable a sera initialisée à 5.

Instance Bloc de code d'initialisation

Un bloc de code d'initialisation d'instance est déclaré sans le modificateur statique et est exécuté lorsque une instance de la classe est créée. Il est utilisé pour initialiser les variables d'instance et effectuer d'autres tâches d'initialisation pour l'instance. Par exemple :

public class Test {
    private int a = 5;
    {
        System.out.println("Instance initialization code executed");
    }
}

Le bloc de code d'initialisation de l'instance sera exécuté avant l'appel du constructeur de la classe Test, et la variable a sera initialisée à 5.

Clé Différences

Les principales différences entre les blocs de code d'initialisation de classe et d'instance sont les suivantes suit :

  • Les blocs de code d'initialisation de classe sont exécutés lorsque la classe est chargée, tandis que les blocs de code d'initialisation d'instance sont exécutés lorsqu'une instance de la classe est créée.
  • Les blocs de code d'initialisation de classe peuvent accéder aux variables statiques, tandis que les blocs de code d'initialisation d'instance peuvent accéder à la fois aux variables statiques et d'instance.
  • Les blocs de code d'initialisation de classe sont partagés entre toutes les instances de la classe, tandis que les blocs de code d'initialisation d'instance sont spécifiques à chacune exemple.

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!

Déclaration:
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