XOR Operator in Java

At work today I came across an Eclipse feature for cleaning up Java code. It helps you to improve the code, for example to add final to attributes or parameters, or to improve boolean expressions.

By chance I stumbled upon the operator for XOR (exclusive OR - only exactly one of the options is true). For XOR, you can just use a simple ^. This was new to me, even though I’ve been using Java since school days (more than 5 years).

jshell> boolean one = true;
one ==> true

jshell> boolean two = false;
two ==> false

jshell> (one && !two) || (!one && two);
$3 ==> true

jshell> one ^ two;
$4 ==> true

jshell> one ^ one;
$5 ==> false

jshell> two ^ two;
$6 ==> false

Because it is a bitwise operator, it can also compare any primitive type:

jshell> 1 ^ 2; // 00000001 and 00000010
$7 ==> 3

jshell> 1 ^ 3; // 00000001 and 00000011
$8 ==> 2

Interactions & Comments