Heim > Java > javaLernprogramm > Detaillierte Erläuterung der Endlosschleife nicht statischer Mitgliedsvariablen in Java

Detaillierte Erläuterung der Endlosschleife nicht statischer Mitgliedsvariablen in Java

黄舟
Freigeben: 2017-09-23 10:18:52
Original
1617 Leute haben es durchsucht

Der folgende Editor bringt Ihnen einen Artikel über die Endlosschleife nicht statischer Mitgliedsvariablen in Java (ausführliche Erklärung). Der Herausgeber findet es ziemlich gut, deshalb teile ich es jetzt mit Ihnen und gebe es als Referenz. Folgen wir dem Editor und werfen wir einen Blick darauf.

1. Nicht statische Mitgliedsvariablen

Wenn die Mitgliedsvariable ein nicht statisches Mitglied ist Variable und ist spezifisch für die aktuelle Klasse. Beim Instanziieren tritt eine Endlosschleife auf

Beispiel:


public class ConstructorCls {
 private ConstructorCls obj=new ConstructorCls();
}
Nach dem Login kopieren


public class TestC {

 public static void main(String[] args) {
  ConstructorCls c =new ConstructorCls();
 }
}
Nach dem Login kopieren
Nach dem Login kopieren

Ergebnis:


Exception in thread "main" java.lang.StackOverflowError
at com.ConstructorCls.<init>(ConstructorCls.java:7)
at com.ConstructorCls.<init>(ConstructorCls.java:7)
at com.ConstructorCls.<init>(ConstructorCls.java:7)
Nach dem Login kopieren

Analyse: Wenn new ConstrutorCls() ConstrutorCls instanziiert und dann das Mitgliedsobjekt dieser Klasse initialisiert, das wiederum seine eigene Klasse instanziiert, und dies wird fortgesetzt, bis StackOverflowError

Statische Mitgliedsvariablen

Statische Mitgliedsvariablen gehören zur Klasse und verursachen keine Endlosschleife

Zum Beispiel:


public class ConstructorCls {
 private static ConstructorCls obj=new ConstructorCls(); 
}
Nach dem Login kopieren


public class TestC {

 public static void main(String[] args) {
  ConstructorCls c =new ConstructorCls();
 }
}
Nach dem Login kopieren
Nach dem Login kopieren

Analyse: Wenn neue ConstructorCls(), fügen Sie zuerst ConstructorCls zur JVM hinzu und initialisieren Sie die Statik Mitglieder der Klasse beim Laden (nur einmal beim Laden initialisieren), das obj-Objekt initialisieren, neue ConstructorCls erstellen, ein wichtiger Punkt hierbei ist, dass dieses statische Mitglied zur Klasse und nicht zu einem bestimmten Instanzobjekt gehört, sodass keine Endlosschleife auftritt .

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Endlosschleife nicht statischer Mitgliedsvariablen in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage