Les opérateurs bit à bit sont censés parcourir les variables et les utiliser petit à petit. Dans le cas des entiers, des longs, des caractères, cela a du sens. Ces variables peuvent contenir la gamme complète de valeurs imposées par leur taille.
Dans le cas des booléens, cependant, un booléen ne peut contenir que deux valeurs. 1 = vrai ou 0 = faux. Mais la taille du booléen n'est pas définie. Il peut être aussi gros qu'un octet ou aussi petit.
Alors, quel est l'effet de l'utilisation d'un opérateur binaire sur un booléen? La JVM le traduit-il essentiellement en opérateur logique normal et passe-t-il à autre chose? Traite-t-il le booléen comme une entité à un seul bit aux fins de l'opération? Ou le résultat est-il indéfini avec la taille d'un booléen?