Maison  >  Article  >  Java  >  Introduction détaillée aux mots clés Java statiques

Introduction détaillée aux mots clés Java statiques

黄舟
黄舟original
2017-03-16 09:52:241746parcourir

statique signifie "global" ou "statique", est utilisé pour modifier les variables membres et les méthodes membres peuvent également former des blocs de code statiques , mais Il n'y a pas de concept de variables globales dans le langage Java .

Les variables membres et les méthodes membres modifiées par static sont indépendantes de tout objet de la classe. Autrement dit, cela ne dépend pas d’une instance spécifique de la classe et est partagé par toutes les instances de la classe. Tant que cette classe est chargée,

La machine virtuelle Java peut déterminer la zone de méthode dans la zone de données d'exécution en fonction sur le nom de la classe. Trouvez-les . Par conséquent, un objet statique est accessible avant la création de l'un de ses objets, sans référencer aucun objet.

Les variables membres statiques et les méthodes membres modifiées avec public sont essentiellement des variables globales et des méthodes globales Lorsqu'un objet de sa classe est déclaré, une copie de la variable statique n'est pas générée, mais. Toutes les instances de la classe partagent la même variable statique .

La variable statique peut être précédée d'une modification privée, indiquant que cette variable peut être utilisée dans le bloc de code statique de la classe, ou dans d'autres méthodes membres statiques de la classe (bien sûr peut également être utilisé dans les méthodes membres non statiques utilisées dans --- nonsense), mais il est important de ne pas le référencer directement via le nom de classe dans d'autres classes. En fait, vous devez comprendre que privé signifie restriction d'autorisation d'accès, et statique signifie qu'il peut être utilisé sans instanciation, ce qui est beaucoup plus facile à comprendre. L'effet de l'ajout d'autres mots-clés de droits d'accès devant static est également le même.

Quelques caractéristiques de la statique :

(1) Les variables statiques sont également appelées statiques La différence entre les variables, les variables statiques et les variables non statiques est que les variables statiques sont partagées par tous les objets et n'ont qu'une seule copie en mémoire. Elle sera initialisée quand et seulement quand la classe est chargée pour la première fois. Les variables non statiques appartiennent aux objets et sont initialisées lorsque crée un objet . Il existe plusieurs copies et les copies appartenant à chaque objet ne s'affectent pas.

(2) statice a deux fonctions : premièrement, il souhaite uniquement allouer un seul espace de stockage pour un domaine spécifique, quel que soit le nombre d'objets créés, ou même aucun objet n'est créé ; deuxièmement, j'espère qu'une méthode n'est associée à aucun objet la contenant, c'est-à-dire que n'importe quelle méthode qu'elle contient peut être appelée sans créer d'objet.

(3) Toutes les variables membres et méthodes membres modifiées par statice sont indépendantes de tout objet de la classe. Elles ne dépendent d'aucun objet de la classe et sont partagées par toutes les instances.

(4) Il n'y a qu'une seule copie des variables statiques dans la mémoire. JVM n'alloue qu'une seule fois la mémoire statique. L'allocation de mémoire des variables statiques est terminée pendant le processus de chargement de la classe. Vous pouvez utiliser le nom de la classe pour accéder directement.

(5) Le code statique est lié à la class. Le chargement réussi de la classe signifie que votre code statique a été exécuté et que vous ne le ferez plus à l'avenir. Code statique. La fonction de Class.forName() est de demander à la JVM de trouver et de charger la classe spécifiée, ce qui signifie que la JVM exécutera le segment de code statique de la classe.

(6) Méthode statique attribut l'initialisation est initialisée lorsque la classe est chargée. Au lieu de l’initialisation des propriétés de méthode statique.

Exemple :

public class Test {
     static int i;
     static
     {
          i++;
          System.out.println("outt i:"+i);
     }
     static void outi()
     {
            i++;
            System.out.println("output i:"+i);
     }
     public static void main(String [] argStrings)
     {
          Test test=new Test();
          test.outi();
     }
}

Résultat de sortie :

outt i:1
output i:2



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