1. Que représente statique ?
Il n'y a pas de concept de variables globales en Java, mais on peut 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 en même temps 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 sur d'autres instances.
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
2. Comment utiliser statique
Statique 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 la classe. nom. .
ClassName..propertyName
ClassName.methodName(……)
Le bloc de code modifié statique représente un bloc de code statique lorsque la JVM charge une classe, celle-ci sera exécutée. . Le code de bloc 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. En même temps, 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. Limites de la statique
Static a de nombreuses fonctions, mais il présente aussi 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.
Ce qui précède est le contenu du chapitre sur l'amélioration de Java (6) ----- mot-clé statique Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !