Jemand hat gefragt, ob es nicht nur zwei Arten von booleschen Werten gibt: wahr und falsch? Warum hat die von ihm definierte Eigenschaft einen Nullwert?
Wir sollten zunächst klarstellen, dass Boolean der grundlegende Datentyp von Java und Boolean eine Klasse von Java ist. Der boolesche Typ weist der Eigenschaft während der Phase „Null zuweisen“ den Wert „Falsch“ zu. Boolean ist eine Klasse, die dem Objekt während der Phase „Nullwert zuweisen“ Null zuweist.
Wenn es sich um eine statische Eigenschaft handelt, wird sie beim Laden der Klasse zugewiesen. Wenn es sich um ein normales Klassenattribut handelt, wird der Wert zugewiesen, wenn das Objekt instanziiert wird. Diese beiden Punkte können Ihnen helfen, den „Klassenlademechanismus“ und den „Objekterstellungsprozess“ zu verstehen.
Laden: Rufen Sie den binären Bytestrom der Klasse basierend auf dem vollständigen Namen der Klasse ab und laden Sie die Klasse in den Speicher und ein Klassenobjekt, das diese Klasse darstellt, wird im Heap als Zugriffseingang auf die Methodenbereichsdaten generiert
Überprüfung: Überprüfen Sie, ob der Bytestrom in der Klassendatei vorhanden ist entspricht der JVM-Spezifikation , der Standardwert von Boolean ist null)#🎜🎜 #
Überprüfen Sie, ob die Klasse geladen wurde (elterliche Delegation)
Nullwertinitialisierung (falsch/null)
Setzen Sie den Objektheader (object Generationsalter und andere Informationen)
Als nächstes können wir uns die Eigenschaften und Konstruktionsmethoden von Boolean ansehen Verstehen Sie, wie es Boolesche Werte umschließt Das Entwicklungshandbuch ist auch sehr gut geschrieben. Beim Auspacken kommt es zu NPE.
“ und Du wirst geschlagen. #? Quellcode-Perspektive: Big Boolean initialisiert auch zwei statische Objekte 🎜# Ich habe eine Testklasse geschrieben: Testmethode (ermitteln Sie die Zeit, wenn der große boolesche Typ wahr ist, erhalten Sie die Zeit, wenn der kleine boolesche Typ wahr ist, durchlaufen Sie 100, 1000, 10000, 100000 Mal, um zu sehen, welche Zeit kürzer und größer ist mal)
// final boolean类型的属性,通过构造方法注入值 private final boolean value; // 构造方法 Boolean a = true 实际上就是调用这个方法 public Boolean(boolean value) { this.value = value; } // 构造方法 public Boolean(String s) { this(parseBoolean(s)); }
Das Ausführungsergebnis ist wie folgt:
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Boolean und Boolean in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!