1. Was bedeutet „statisch“?
Es gibt kein Konzept für globale Variablen, aber wir können ein „pseudoglobales“ Konzept durch „statisch“ implementieren. In Java bedeutet „statisch“ „global“. „Statisch“ bedeutet, dass es zum Ändern von Mitgliedsvariablen und Mitgliedsmethoden verwendet wird. Natürlich können auch Codeblöcke geändert werden.
Java unterteilt den Speicher in Stapelspeicher und Heapspeicher. Der Stapelspeicher wird zum Speichern einiger grundlegender Arten von Variablen, Arrays und Objektreferenzen verwendet, und der Heapspeicher speichert hauptsächlich einige Objekte. Wenn die JVM eine Klasse lädt und die Klasse über statisch geänderte Mitgliedsvariablen und Mitgliedsmethoden verfügt, wird ein Speicherbereich mit fester Größe für diese Mitgliedsvariablen und Mitgliedsmethoden an einem festen Ort geöffnet. Mit diesen „festen“ Funktionen verfügt die JVM können sehr bequem darauf zugreifen. Gleichzeitig bleiben ihre Handles unverändert, wenn statische Mitgliedsvariablen und Mitgliedsmethoden ihren Gültigkeitsbereich nicht verlassen. Gleichzeitig bedeutet das in static enthaltene Konzept von „statisch“, dass es unwiederbringlich ist, das heißt, wenn Sie es an dieser Stelle ändern, wird es nicht in seinen ursprünglichen Zustand zurückkehren, und wenn Sie es bereinigen, wird es nicht wiederhergestellt nicht zurückkommen.
Mitgliedsvariablen und Mitgliedsmethoden, die gleichzeitig durch Statik geändert werden, sind unabhängig von der Klasse. Sie hängen nicht von einer bestimmten Instanzvariablen ab, was bedeutet, dass sie von allen Instanzen der Klasse gemeinsam genutzt werden. Die Referenzen aller Instanzen verweisen auf denselben Ort, und Änderungen an einer Instanz führen zu Änderungen an anderen Instanzen.
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. Verwendung von Static
Mit Static können Mitgliedsvariablen und Mitgliedsmethoden geändert werden. Wir nennen sie statische Variablen und statische Methoden, auf die direkt über die Klasse zugegriffen werden kann Name. .
ClassName..propertyName
ClassName.methodName(……)
Statischer modifizierter Codeblock stellt einen statischen Codeblock dar. Wenn die JVM eine Klasse lädt, wird diese ausgeführt . Blockcode ist sehr nützlich. (Bitte achten Sie auf die Einführung der Verwendung von Codeblöcken in den letzten Tagen)
2.1. Statische Variablen
Durch statische Variablen geänderte Variablen werden als statische Variablen bezeichnet, und Variablen, die dies nicht sind Mit Static geänderte Variablen sind Instanzvariablen dafür einmalig Gleichzeitig teilen sich alle Instanzen einer Klasse statische Variablen, auf die direkt über den Klassennamen zugegriffen werden kann.
Aber die Instanzvariable ist anders. Sie wird von der Instanz begleitet. Jedes Mal, wenn eine Instanz erstellt wird, wird eine Instanzvariable generiert, die mit der Instanz lebt und stirbt.
Daher verwenden wir im Allgemeinen statische Variablen in diesen beiden Situationen: Datenaustausch zwischen Objekten und einfacher Zugriff.
2.2. Statische Methode
Die statische modifizierte Methode wird als statische Methode bezeichnet und wir rufen sie direkt über den Klassennamen auf. Da es beim Laden der Klasse vorhanden ist, hängt es von keiner Instanz ab. Daher muss die statische Methode implementiert werden, was bedeutet, dass es sich nicht um eine abstrakte Methode handeln kann.
Eine statische Methode ist eine spezielle Methode in einer Klasse. Wir deklarieren Methoden nur dann als statisch, wenn wir sie wirklich benötigen. Beispielsweise sind alle Methoden der Math-Klasse statisch.
2.3. Statischer Codeblock
Der durch Statik geänderte Codeblock wird zusammen mit dem Laden der Klasse ausgeführt und kann platziert werden nach Belieben. Kann überall existieren.
3. Einschränkungen der statischen Aufladung
Static hat zwar viele Funktionen, weist aber auch einige Mängel auf.
1. Es können nur statische Variablen aufgerufen werden.
2. Es können nur statische Methoden aufgerufen werden.
3. Auf This und Super darf in keiner Form verwiesen werden.
4. Statische Variablen müssen initialisiert werden, wenn sie definiert werden, und die Initialisierungszeit sollte früher sein als bei nicht statischen Variablen.
Zusammenfassung: Unabhängig davon, ob es sich um eine Variable, eine Methode oder einen Codeblock handelt, ist sie, solange sie mit Static geändert wird, beim Laden der Klasse „bereit“, dh sie kann verwendet werden oder hat wurde ausgeführt und kann vom Objekt getrennt und ausgeführt werden. Im Gegenteil, wenn keine statische Aufladung vorhanden ist, muss sie von der Objektinstanz abhängen.
Das Obige ist der Inhalt des Java-Verbesserungskapitels (6) ----- Stichwort static Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!