true wird intern so ziemlich immer als 1 und false als 0 abgebildet, um das logische UND als bitweises UND und das logische ODER als bitweises ODER zu verwenden.Kann man sagen das true=1 und false=0 gilt, dann wäre true&&false=1&&0=0=false nach Logik-Gatter.
Interessant...das wußte ich auch noch nicht. Ich wußte, daß so ziemlich alles in der JVM als int behandelt wird (auch z.B. Bytes), aber auch die booleans...prima, wieder was gelernt.Vielleicht kurz noch eine Zusatzinformation: In der Quellcodesprache-unabhängigen Bytecode-Sprache der JVM wird für das Produzieren von true als Literal die 1 (int) und zum Produzieren von false als Literal die 0 (int) verwendet.
Deswegen sagte ich auch: "Und ich denke mal nicht, dass der C-Compiler mehrere gemeinsam genutzte Booleans in einem byte packed und bei jedem Zugriff darauf per Bitshifting wieder unpacked."Allerdings arbeitet man in C auch sehr häufig mit Masken und daher im Endeffekt sehr wohl mit einzelnen Bits.
In Java ist die Zuweisung true=1 oder false=0 sinnlos. Löse dich von dieser Vorstellung, je schneller desto besser. Sie ist nicht hilfreich, und neigt nur dazu dich zu verwirren.
Die Zuweisung "True = 1 = Spannung ein" ist eine reine Definitionssache. Die boolsche Algebra kennt keine numerischen Ausdrücke 0 oder 1 oder andere.
0 1
0 0 0
1 0 1
0 1
0 0 1
1 1 1