Maison  >  Article  >  Java  >  Explication détaillée des instances statiques de mots clés en Java

Explication détaillée des instances statiques de mots clés en Java

怪我咯
怪我咯original
2017-06-25 10:04:361393parcourir

1. Que représente statique ?

Il n'y a pas de concept de variables globales en Java, mais nous pouvons implémenter un concept "pseudo-global" via statique. En Java, statique signifie "global" ou ". "Statique" signifie, utilisé pour modifier les variables membres et les méthodes membres, bien sûr, il peut également modifier les blocs de code.

Java divise la mémoire en mémoire de pile et mémoire de tas. La mémoire de pile est utilisée pour stocker certains types de base de variables, de tableaux et de références d'objets, et la mémoire de tas stocke principalement certains objets. Lorsque la JVM charge une classe, si la classe a des variables membres et des méthodes membres modifiées de manière statique, une zone mémoire de taille fixe sera ouverte pour ces variables membres et méthodes membres à un emplacement fixe, puis la JVM. peut y accéder très facilement. Dans le même temps, si les variables membres statiques et les méthodes membres ne sortent pas de la portée, leurs descripteurs resteront inchangés. En même temps, le concept de « statique » contenu dans static signifie qu'il est irrécupérable, c'est-à-dire que si vous le modifiez à cet endroit, il ne reviendra pas à son état d'origine, et si vous le nettoyez, il le fera. ne reviens pas.

Les variables membres et les méthodes membres modifiées par static sont indépendantes de la classe. Elles ne dépendent pas d'une variable d'instance spécifique, ce qui signifie qu'elles sont partagées par toutes les instances de la classe. Les références de toutes les instances pointent vers le même endroit, et les modifications apportées à une instance entraîneront des modifications dans les autres instances.

Explication détaillée des instances statiques de mots clés en Java
public class User {
    private static int userNumber  = 0 ;
    
    public User(){
        userNumber ++;
    }
    
    public static void main(String[] args) {
        User user1 = new User();
        User user2 = new User();
        
        System.out.println("user1 userNumber:" + User.userNumber);
        System.out.println("user2 userNumber:" + User.userNumber);
    }
}    
------------
Output:
user1 userNumber:2
user2 userNumber:2
Explication détaillée des instances statiques de mots clés en Java

2. Comment utiliser static

Static peut être utilisé pour modifier les variables membres et les méthodes membres. Nous les appelons variables statiques et méthodes statiques, accessibles directement via le nom de la classe.

ClassName.propertyName

ClassName.methodName(……)

Le bloc de code modifié statique représente un bloc de code statique, qui sera exécuté lorsque la JVM chargera la classe Code est très utile. (Pour l'introduction de l'utilisation de blocs de code ces derniers jours, veuillez faire attention)

2.1 Variables statiques

Les variables modifiées par static sont appelées variables statiques, et les variables qui ne le sont pas. modifiées avec static sont appelées variables. sont des variables d'instance. La différence entre elles est la suivante :

Les variables statiques sont initialisées lorsque la classe est chargée. Il n'y en a qu'une dans la mémoire, et la JVM n'allouera que de la mémoire. pour cela une fois. Toutes les instances d'une classe partagent des variables statiques, accessibles directement via le nom de la classe.

Mais la variable d'instance est différente. Elle est accompagnée de l'instance. Chaque fois qu'une instance est créée, une variable d'instance est générée, qui vit et meurt avec l'instance.

On utilise donc généralement des variables statiques dans ces deux situations : partage de données entre objets et accès facile.

2.2. Méthode statique

La méthode statique modifiée est appelée méthode statique, et nous l'appelons directement via le nom de la classe. Puisqu'elle existe au moment du chargement de la classe, elle ne dépend d'aucune instance, la méthode statique doit donc être implémentée, ce qui signifie qu'elle ne peut pas être une méthode abstraite.

La méthode statique est une méthode spéciale dans une classe. Nous ne déclarons les méthodes comme statiques que lorsque nous en avons vraiment besoin. Par exemple, toutes les méthodes de la classe Math sont statiques.

2.3. Bloc de code statique

Le bloc de code modifié par static est appelé bloc de code statique. Le bloc de code statique sera exécuté avec le chargement de la classe, et il pourra être placé. à volonté. Peut exister n’importe où.

3. Limitations de Static

Static a de nombreuses fonctions, mais il présente également quelques défauts.

1. Il ne peut appeler que des variables statiques.

2. Il ne peut appeler que des méthodes statiques.

3. Ceci et super ne peuvent être référencés sous aucune forme.

4. Les variables statiques doivent être initialisées lorsqu'elles sont définies, et le temps d'initialisation doit être antérieur à celui des variables non statiques.

Résumé : qu'il s'agisse d'une variable, d'une méthode ou d'un bloc de code, tant qu'elle est modifiée avec static, elle sera "prête" lorsque la classe sera chargée, c'est-à-dire qu'elle pourra être utilisée ou a été exécuté, et peut être détaché et exécuté. Au contraire, s’il n’y a pas de statique, cela doit dépendre de l’instance de l’objet.

Attention aux étudiants qui apprennent Java ! ! !
Si vous rencontrez des problèmes pendant le processus d'apprentissage ou si vous souhaitez obtenir des ressources d'apprentissage, vous êtes invités à rejoindre le groupe d'échange d'apprentissage Java : 159610322 Apprenons Java ensemble !

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