Java dispose d'un type booléen1.2, boolean, dont les valeurs sont true (vrai) et false (faux). Ce type n'est un sous-type ou sur-type d'aucun autre type primitif : en particulier, on ne peut pas convertir un entier en booléen ni un booléen en entier.
Les expressions relationnelles sont des expressions de type boolean formées à l'aide des opérateurs relationnels, qui sont :
La valeur d'une expression relationnelle est un booléen : par exemple, la valeur de 1 == 2 est false, celle de 2 == 2 est true.Les expressions booléennes sont formées à l'aide des opérateurs booléens (ou booléens), qui sont :
!,
&&,
||.
  static boolean xor(boolean p, boolean q) {
    return p && !q || !p && q;
  }
Les règles de précédence des opérateurs booléens stipulent que
!  a la plus forte précédence, puis vient && et enfin
||. Ainsi l'expression booléenne
p && !q || !p && q 
(p && (!q))|| ((!p) && q).