On m'a dit plusieurs définitions, regardé sur Wikipedia, mais en tant que débutant en Java, je ne sais toujours pas ce que cela signifie. Quelqu'un parle couramment Java et idiot?
Réponses
Trop de publicités?statique signifie que la variable ou la méthode marquée comme telle est disponible au niveau de la classe. En d'autres termes, vous n'avez pas besoin de créer une instance de la classe pour y accéder.
public class Foo {
public static void doStuff(){
// does stuff
}
}
Donc, au lieu de créer une instance de Foo et d’appeler ensuite doStuff
comme ceci:
Foo f = new Foo();
f.doStuff();
Vous appelez simplement la méthode directement contre la classe, comme suit:
Foo.doStuff();
Un autre excellent exemple de lorsque les attributs statiques et les opérations sont utilisés lorsque vous souhaitez appliquer le Singleton pattern de conception. En résumé, le modèle de conception Singleton assure que l'un et seulement un objet d'une classe particulière est jamais constructeed au cours de la durée de vie de votre système. pour s'assurer que seulement un objet est jamais construits, typique implemenations du pattern Singleton garder un statique interne de référence pour le seul autorisé instance de l'objet, et l'accès à cette instance est contrôlée à l'aide d'un static
fonctionnement
En plus de ce que @inkedmn a souligné, un membre statique est au niveau de la classe. Par conséquent, ledit membre est chargé en mémoire par la machine virtuelle Java une fois pour cette classe (lorsque la classe est chargée). Autrement dit, il n'y a pas n instances d'un membre statique chargé pour n instances de la classe à laquelle il appartient.
Les points ci-dessus sont correctes et je tiens à ajouter quelques points plus importants sur mot-clé Static.
En interne, ce qui se produit lorsque vous utilisez le mot-clé static est qu'il va stocker dans la mémoire permanente(qui est en mémoire dans la mémoire),nous savons qu'il existe deux types de mémoire, elles sont pile de la mémoire(mémoire temporaire) et un segment de mémoire(mémoire permanente),donc si vous ne l'utilisez pas statique mot-clé puis allez stocker dans la mémoire temporaire qui est dans la pile mémoire(ou vous pouvez l'appeler comme mémoire volatile).
de sorte que vous aurez un doute que ce qui est l'usage de ce droit???
exemple: static int a=10;(1 programme)
seulement maintenant, je dit que si vous utilisez le mot-clé static pour les variables ou de méthode , il va stocker dans la mémoire permanente de droit.
j'ai donc déclaré la même variable avec le mot-clé static dans un autre programme avec une valeur différente.
exemple: static int a=20;(2)
la variable " a " est stocké dans la mémoire du tas par le programme 1.la même statique de la variable 'a' est trouvé dans le programme 2, à l'époque, on ne crée pas une fois de plus variable 'a' dans la mémoire du tas au lieu de ça, il suffit de remplacer la valeur de un de 10 à 20.
En général, il va créer encore une fois la variable 'a' dans la pile de la mémoire(mémoire temporaire) si vous ne déclarez pas " a " comme variable statique.
globalement, je peux dire que,si nous utilisons le mot-clé static
1.nous pouvons économiser de la mémoire
2.nous pouvons éviter les doublons
3.Pas besoin de créer un objet dans l'ordre pour accéder à une variable statique à l'aide du nom de la classe, vous pouvez y accéder.