# 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.