statisch bedeutet „global“ oder „statisch“, wird zum Ändern von Mitglieds-Variablen und verwendet Mitgliedsmethoden können auch statische Codeblöcke bilden , aber Es gibt kein Konzept für globale Variablen in der Java-Sprache .
Durch Statik geänderte Mitgliedsvariablen und Mitgliedsmethoden sind unabhängig von jedem Objekt der Klasse. Das heißt, es hängt nicht von einer bestimmten Instanz der Klasse ab und wird von allen Instanzen der Klasse gemeinsam genutzt. Solange diese Klasse geladen ist,
Die Java Virtual Machine kann den Methodenbereich im Laufzeitdatenbereich basierend bestimmen Finden Sie sie unter . Daher kann auf ein statisches Objekt zugegriffen werden, bevor eines seiner Objekte erstellt wird, ohne auf Objekte zu verweisen.
Die mit public geänderten statischen Mitgliedsvariablen und Mitgliedsmethoden sind im Wesentlichen globale Variablen und globale Methoden. Wenn ein Objekt seiner Klasse deklariert wird, wird keine Kopie der statischen Variablen generiert Alle Instanzen der Klasse verwenden dieselbe statische Variable .
Statische Variablen können durch private Änderungen vorangestellt werden, was darauf hinweist, dass diese Variable im statischen Codeblock der Klasse oder in anderen statischen Mitgliedsmethoden der Klasse (natürlich) verwendet werden kann kann auch in nicht statischen Mitgliedsmethoden verwendet werden, die in --- Unsinn verwendet werden), es ist jedoch wichtig, in anderen Klassen nicht direkt über den Klassennamen darauf zu verweisen. Tatsächlich müssen Sie verstehen, dass sich „privat“ auf Zugriffsberechtigungsbeschränkungen bezieht und „statisch“ bedeutet, dass es ohne Instanziierung verwendet werden kann, was viel einfacher zu verstehen ist. Der Effekt des Hinzufügens anderer Schlüsselwörter für Zugriffsrechte vor static ist ebenfalls derselbe.
Einige Merkmale von Statik:
(1) Statische Variablen werden auch als statisch bezeichnet Der Unterschied zwischen Variablen, statischen Variablen und nicht statischen Variablen besteht darin, dass statische Variablen von allen Objekten gemeinsam genutzt werden und nur eine Kopie im Speicher haben. Sie werden nur dann initialisiert, wenn die Klasse zum ersten Mal geladen wird. Nicht statische Variablen gehören Objekten und werden initialisiert, wenn ein Objekt erstellt. Es gibt mehrere Kopien, und die Kopien, die jedem Objekt gehören, wirken sich nicht gegenseitig aus.
(2) Statice hat zwei Funktionen: Erstens möchte es nur einen einzigen Speicherplatz für eine bestimmte Domäne zuweisen, unabhängig davon, wie viele Objekte erstellt werden oder sogar keine Objekte erstellt werden Zweitens hoffe ich, dass eine Methode keinem Objekt zugeordnet ist, das sie enthält, d. h. jede darin enthaltene Methode kann aufgerufen werden, ohne ein Objekt zu erstellen.
(3) Alle durch Statice geänderten Mitgliedsvariablen und Mitgliedsmethoden sind unabhängig von Objekten der Klasse. Sie hängen von keinem Objekt der Klasse ab und werden von allen Instanzen gemeinsam genutzt.
(4) Es gibt nur eine Kopie statischer Variablen im Speicher. Die Speicherzuweisung statischer Variablen wird während des Ladevorgangs der Klasse abgeschlossen. Sie können direkt auf den Klassennamen zugreifen.
(5) Statischer Code ist an Klasse gebunden. Das erfolgreiche Laden der Klasse bedeutet, dass Ihr statischer Code ausgeführt wurde und Sie dies in Zukunft nicht mehr tun werden. Statischer Code. Die Funktion von Class.forName() besteht darin, die JVM aufzufordern, die angegebene Klasse zu finden und zu laden, was bedeutet, dass die JVM das statische Codesegment der Klasse ausführt.
(6) Statische Methode Attribut Initialisierung wird initialisiert, wenn die Klasse geladen wird. Anstelle der Initialisierung statischer Methodeneigenschaften.
Beispiel:
public class Test { static int i; static { i++; System.out.println("outt i:"+i); } static void outi() { i++; System.out.println("output i:"+i); } public static void main(String [] argStrings) { Test test=new Test(); test.outi(); } }
Ausgabeergebnis:
outt i:1 output i:2
Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in das statische Java-Schlüsselwort. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!