Java: Comparison Operators

All the standard comparison operators work for primitive values (int, double, char, ...). The == and != operators can be used to compare object references, but see Comparing Objects for how to compare object values.

Operators

The result of every comparison is boolean (true or false).

operator meaning
< less than
<=less than or equal to
== equal to
>=greater than or equal to
> greater than
!= not equal

Common Errors

0 < x < 100
Comparison operators can be used with two numbers. Although you can write 0 < x < 100 in mathematics, it is illegal in Java. You must write this as the and of two comparisons:
    0<x && x<100
= instead of ==
Using the assignment operator instead of equality will produce a compiler error, which is easy to fix.
== with floating-point
Because floating-point numbers are not exact, you should always use >= or <= instead of ==. For example, because the decimal number 0.1 can not be represented exactly in binary, (0.1 + 0.1 + 0.1) is not equal to 0.3!

For C/C++ Programmers

The Java comparison operators look exactly the same as the C/C++ comparison operators. The difference is that the result type is boolean. Because of this, the common C error of using = instead of == is almost completely eliminated. Java doesn't allow operator overloading however, something that C++ programmers might miss.