Heim  >  Artikel  >  Java  >  Was sind statische Java-Variablen?

Was sind statische Java-Variablen?

青灯夜游
青灯夜游Original
2021-05-08 12:01:0422748Durchsuche

In Java beziehen sich statische Variablen auf Variablen von Klassen, die durch statische Variablen geändert werden. Sie werden von allen Klasseninstanzobjekten gemeinsam genutzt, haben nur eine Kopie im Speicher und werden nur dann initialisiert, wenn die Klasse zum ersten Mal geladen wird.

Was sind statische Java-Variablen?

Die Betriebsumgebung dieses Tutorials: Windows7-System, Java8-Version, DELL G3-Computer.

1. JVM-Laufzeitdatenbereich

Was sind statische Java-Variablen?

  • Der Java-Heap speichert fast alle Objektinstanzen und wird von allen Threads geteilt Jeder Thread wird zum Speichern von Klasseninformationen, Konstanten, statischen Variablen usw. von Klassen verwendet, die von der virtuellen Maschine geladen wurden Variablen.
  • Nichtstatische Variablen werden auch Instanzvariablen genannt
  • Der Unterschied zwischen statischen Variablen und Instanzvariablen ist:

Statische Variablen werden von allen Klasseninstanzobjekten gemeinsam genutzt und haben nur eine Kopie im Speicher, und zwar genau dann, wenn die Klasse geladen ist zum ersten Mal initialisiert.

Instanzvariablen gehören dem Instanzobjekt. Sie werden initialisiert, wenn das Objekt erstellt wird. Die Kopien, die jedem Instanzobjekt gehören, haben keinen Einfluss auf einander Es ist ersichtlich:

Der Index der statischen Variablen wird von mehreren Objektinstanzen gemeinsam genutzt

Die Anzahl der Instanzobjekte ist für mehrere Objektinstanzen privat Lokale Variablen

  • Statisch in C/C++ kann den Gültigkeitsbereich lokaler Variablen festlegen.
  • Statisch in Java darf keine lokalen Variablen ändern.
Fragen Sie nicht nach dem Grund, das ist eine Anforderung der Java-Grammatik.

Was sind statische Java-Variablen?

3.2 Dies kann auf statische Variablen zugreifen

  • Obwohl statische Variablen unabhängig von Objekten sind, bedeutet dies nicht, dass auf sie nicht über Objektinstanzen zugegriffen werden kann (wie solange Zugriffsrechte ausreichend erforderlich sind).
  • Dies stellt die aktuelle Objektinstanz dar und statische statische Variablen werden von allen Objekten gemeinsam genutzt, sodass auf statische Variablen über diese Variable zugegriffen werden kann
  • public class MyStatic {
        // 静态变量
        private static int index = 0;
    
        // 实例变量
        private int count = 0;
    
        public void inc() {
            index++;
            count++;
        }
    
        public String  get() {
            return "静态变量index = " + index + ",  实例变量count = " + count;
        }
    }
  • Ergebnisse ausführen:

Was sind statische Java-Variablen?

3.3 static ändert nicht die Zugriffsrechte von Klassenmitgliedern

Java Das statische Schlüsselwort in hat keinen Einfluss auf den Umfang von Variablen oder Methoden. In Java sind die einzigen Schlüsselwörter, die Zugriffsrechte beeinflussen können, privat, öffentlich und geschützt (einschließlich Paketzugriffsrechte)
/**
 * index是静态变量
 * count是实例变量
 * */
public class StaticVariableTest {

    public static void main(String[] args) {
        MyStatic myStatic1 = new MyStatic();
        MyStatic myStatic2 = new MyStatic();
        MyStatic myStatic3 = new MyStatic();

        myStatic1.inc();
        System.out.println("myStatic1的index、count增加1:");
        System.out.println("myStatic1的" + myStatic1.get());
        System.out.println("myStatic2的" + myStatic2.get());
        System.out.println("myStatic3的" + myStatic3.get() + "\n");

        myStatic2.inc();
        System.out.println("myStatic2的index、count增加1:");
        System.out.println("myStatic1的" + myStatic1.get());
        System.out.println("myStatic2的" + myStatic2.get());
        System.out.println("myStatic3的" + myStatic3.get() + "\n");

        myStatic3.inc();
        System.out.println("myStatic3的index、count增加1:");
        System.out.println("myStatic1的" + myStatic1.get());
        System.out.println("myStatic2的" + myStatic2.get());
        System.out.println("myStatic3的" + myStatic3.get());
    }
}

  • Empfohlene verwandte Video-Tutorials:
  • Java-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas sind statische Java-Variablen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn