Der boolesche Typ belegt in Java 1,1 Bit. Der Grund dafür ist, dass der Wert des booleschen Typs nur zwei logische Werte hat: true und false. Nach der Kompilierung wird er durch 1 und 1 dargestellt Der Grund: Obwohl 1 und 0 nach der Kompilierung nur 1 Bit Speicherplatz belegen, ist die kleinste vom Computer verarbeitete Dateneinheit 1 Byte.
Warum stellen Sie diese Frage? Abgesehen davon, dass die anderen sieben Typen klare Speicherbelegungsbytes haben, ist für den booleschen Typ The keine spezifische Belegung angegeben Anzahl der Bytes, da der boolesche Typ für die virtuelle Maschine nicht vorhanden ist. Der boolesche Typ wird nach der Kompilierung durch andere Datentypen dargestellt. Mit Zweifeln habe ich online gesucht und verschiedene Antworten gefunden, im Wesentlichen die folgenden:
1, 1 Bit
Der Grund dafür ist, dass der boolesche Typwert nur zwei logische Werte hat, wahr und falsch, und 1 und 0 nach der Kompilierung verwendet werden Um es auszudrücken: Für diese beiden Zahlen muss nur 1 Bit (Bit) im Speicher gespeichert werden, und das Bit ist die kleinste Speichereinheit des Computers.
2. 1 Byte
Der Grund dafür ist, dass 1 und 0 nach der Kompilierung nur 1 Bit Speicherplatz belegen, die kleinste Einheit für die Computerverarbeitung 1 Byte beträgt und 1 Byte dem tatsächlichen Speicherplatz entspricht Ja: Verwenden Sie zum Speichern das niedrigste Bit von 1 Byte und füllen Sie die anderen 7 Bits mit 0. Wenn der Wert wahr ist, ist die gespeicherte Binärzahl: 0000 0001. Wenn er falsch ist, ist die gespeicherte Binärzahl: 0000 0000.
3, 4 Bytes
Der Grund ergibt sich aus der Beschreibung in der „Java Virtual Machine Specification“: „Obwohl der boolesche Datentyp definiert ist, bietet er nur sehr begrenzte Unterstützung dafür. In der Java Virtual Machine gibt es keinen Bytecode.“ Anweisungen für boolesche Werte, die von Java-Sprachausdrücken verarbeitet werden, werden nach der Kompilierung durch den Datentyp int in der virtuellen Java-Maschine ersetzt, und das boolesche Array wird in die virtuelle Java-Maschine codiert Element belegt 8 Bit.“ Auf diese Weise können wir schließen, dass der boolesche Typ bei alleiniger Verwendung 4 Bytes und 1 Byte im Array belegt.
Offensichtlich ist die dritte Aussage eine genauere Aussage. Warum verwendet die virtuelle Maschine also int anstelle von boolean? Warum nicht Byte oder Short verwenden? Würde das nicht mehr Speicherplatz sparen? Die meisten Leute werden natürlich auch so denken. Nachdem ich die Informationen überprüft hatte, stellte ich fest, dass der Grund für die Verwendung von int darin besteht, dass die Daten, die auf einmal verarbeitet werden, 32 Bit groß sind. (nicht hier) Es bezieht sich auf 32/64-Bit-Systeme, bezieht sich jedoch auf die CPU-Hardwareebene, die die Eigenschaften eines effizienten Zugriffs aufweist.
Abschließende Zusammenfassung:
Laut der Beschreibung des offiziellen Dokuments unter http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html:
boolean: Der boolesche Datentyp hat nur zwei mögliche Werte: wahr und falsch. Verwenden Sie diesen Datentyp für einfache Flags, die wahr/falsch-Bedingungen verfolgen, aber seine „Größe“ ist nicht genau definiert.
Boolescher Typ: Es gibt nur zwei boolesche Datentypen. Mögliche Werte: true und false. Verwenden Sie diesen Datentyp für einfache Markierungen, die Wahr/Falsch-Bedingungen verfolgen. Dieser Datentyp stellt diese Information dar, seine „Größe“ ist jedoch nicht genau definiert.
Es ist ersichtlich, dass der boolesche Typ keine genaue Definition enthält. Die „Java Virtual Machine Specification“ gibt eine Definition von 4 Bytes und 1 Byte für das boolesche Array an. Die Einzelheiten hängen davon ab, ob die Implementierung der virtuellen Maschine der Spezifikation folgt . , also sind 1 Byte und 4 Byte möglich. Dabei handelt es sich eigentlich um ein Spiel zwischen Rechenleistung und Speicherplatz, die beide sehr wichtig sind.
Verwandte kostenlose Lernempfehlungen: Java-Grundlagen-Tutorial
Das obige ist der detaillierte Inhalt vonWie viele Bytes belegt der boolesche Typ in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!