Si vous ne parlez que de classes internes statiques, vous pouvez les considérer comme de simples classes de niveau supérieur parasites dans une classe. Elles n'ont rien à voir les unes avec les autres, mais l'accès nécessite le nom de la classe externe
.
De même, s'il s'agit d'un champ statique dans une certaine classe, vous pouvez le considérer comme une simple variable parasite dans une classe. Cela n'a rien à voir avec la classe dans laquelle il se trouve. Il vous suffit d'apporter la classe parasite. si vous souhaitez y accéder. nom de classe, et cette variable a une et une seule instance dans la machine virtuelle. All Class.static renvoie cet objet, et toutes les opérations sont uniquement pour cet objet même si vous créez un objet parasite. classe puis détruisez-la, suivez Cela n'a pas d'importance non plus
Tout d'abord, la classe interne statique n'a aucune dépendance sur la classe externe qui l'enveloppe (contrairement aux membres, aux méthodes, aux classes internes anonymes. Ce sont essentiellement deux classes indépendantes de premier niveau, mais elles). sont statiques. La classe interne utilise l'espace de noms de la classe externe. En d’autres termes, les classes internes statiques peuvent être utilisées comme des classes ordinaires de niveau supérieur, telles que OutClass.InnerStaticClass. En parallèle, puisque la classe interne statique est membre de la classe externe, vous pouvez utiliser des modificateurs d'accès pour modifier sa visibilité : public protected private package visible
Je n'ai jamais entendu parler du concept de « classe interne statique ». Il n'existe que trois scénarios d'utilisation de statique, à savoir les variables statiques, les méthodes statiques et les blocs statiques [Variables statiques]
Lorsqu'un objet est créé, les variables membres sont stockées dans le tas et les variables membres statiques sont stockées dans la zone de méthode avec les informations de classe plutôt que dans le tas. Il n'y a qu'une seule copie des variables membres statiques de. une classe. » (stocké dans la zone de méthode), quel que soit le nombre d’objets créés par la classe.
【Méthode statique】
Les méthodes modifiées statiquement n'ont pas besoin d'opérer sur certains objets. Les résultats de l'opération sont uniquement liés aux paramètres d'entrée. Ils peuvent être directement référencés par le nom de la classe lors de l'appel, et le mot-clé this ne peut pas être utilisé.
【blocage statique】
Le bloc statique est un bloc de code appartenant à une classe. Le bloc de code est exécuté lors du chargement de la classe (avant la création de l'objet). Il n'est exécuté qu'une seule fois et peut être utilisé pour charger des ressources statiques (images, audio). , etc.) dans le logiciel.
Les objets ci-dessus sont chargés dans la zone de méthode au fur et à mesure du chargement de la classe, et il n'y a qu'une seule copie. Il semble que vous parliez de l'analyse du modèle de mémoire Java. Si vous êtes intéressé, lisez cet article et faites passer le mot.
Modèle de mémoire JVM : http://blog.csdn.net/u0121526...
Si vous ne parlez que de classes internes statiques, vous pouvez les considérer comme de simples classes de niveau supérieur parasites dans une classe. Elles n'ont rien à voir les unes avec les autres, mais l'accès nécessite le nom de la classe externe
.De même, s'il s'agit d'un champ statique dans une certaine classe, vous pouvez le considérer comme une simple variable parasite dans une classe. Cela n'a rien à voir avec la classe dans laquelle il se trouve. Il vous suffit d'apporter la classe parasite. si vous souhaitez y accéder. nom de classe, et cette variable a une et une seule instance dans la machine virtuelle. All Class.static renvoie cet objet, et toutes les opérations sont uniquement pour cet objet même si vous créez un objet parasite. classe puis détruisez-la, suivez Cela n'a pas d'importance non plus
Tout d'abord, la classe interne statique n'a aucune dépendance sur la classe externe qui l'enveloppe (contrairement aux membres, aux méthodes, aux classes internes anonymes. Ce sont essentiellement deux classes indépendantes de premier niveau, mais elles). sont statiques. La classe interne utilise l'espace de noms de la classe externe. En d’autres termes, les classes internes statiques peuvent être utilisées comme des classes ordinaires de niveau supérieur, telles que OutClass.InnerStaticClass. En parallèle, puisque la classe interne statique est membre de la classe externe, vous pouvez utiliser des modificateurs d'accès pour modifier sa visibilité : public protected private package visible
Je n'ai jamais entendu parler du concept de « classe interne statique ». Il n'existe que trois scénarios d'utilisation de statique, à savoir les variables statiques, les méthodes statiques et les blocs statiques
[Variables statiques]
【Méthode statique】
【blocage statique】
Les objets ci-dessus sont chargés dans la zone de méthode au fur et à mesure du chargement de la classe, et il n'y a qu'une seule copie. Il semble que vous parliez de l'analyse du modèle de mémoire Java. Si vous êtes intéressé, lisez cet article et faites passer le mot.
Modèle de mémoire JVM : http://blog.csdn.net/u0121526...