Operators are used to perform following operations- arithmetic operations (addition, subtraction, multiplication & division), compare values of two variables, to apply bitwise operations, etc.

There are seven types of operators in Java which are explained below-

- Arithmetic operators
- Relational operators
- Bitwise operators
- Logical operators
- Assignment operators
- Ternary operators
- Advanced operators

If you want to perform basic algebraic operations like +, -, * and / in Java then use arithmetic operators. Java provides seven arithmetic operators which are explained below-

Operator | Usage | Description |
---|---|---|

+ | value1 + value2 | Adds value1 and value2. |

- | value1 - value2 | Subtract value2 from value1. |

++ | value1 ++ value2 | Increment value1 by 1. |

-- | value1 -- value2 | decrement value1 by 1. |

* | value1 * value2 | Multiplies value1 by value2. |

/ | value1 / value2 | Divides value1 by value2. |

% | value1 % value2 | Calculates the remainder of dividing value1 by value2. |

It is also known as a **comparison operators**. It compares the values of two operands and returns a boolean value- true or false.

Operator | Usage | Description |
---|---|---|

== | value1 == value2 | if value1 and value2 are equal, then the result is true otherwise false. |

!= | value1 != value2 | if value1 and value2 are not equal, then the result is true otherwise false. |

> | value1 > value2 | if value1 is greater than value2, then the result is true otherwise false. |

>= | value1 >= value2 | if value1 is greater or equal than value2, then the result is true otherwise false. |

< | value1 < value2 | if value1 is less than value2, then the result is true otherwise false. |

<= | value1 <= value2 | if value1 is less or equal than value2, then the result is true otherwise false. |

Java provides six bitwise operators to manipulate the bits of integer value. You can apply these operators on byte, short, int, long, and char value.

Operator | Usage | Description |
---|---|---|

Bitwise AND(&) | value1 & value2 | It performs AND logic on numbers at bit level. |

Bitwise OR(|) | value1 | value2 | It performs OR logic on numbers at bit level. |

Bitwise XOR(^) | value1 ^ value2 | It performs XOR logic on numbers at bit level. |

Bitwise Inversion(~) | ~value1 | This operator inverts the value of each bit of the operand. |

Right shift(>>) | value1 >> value2 | It right shifts the bits of values1 by values2 times. |

Left shift(<<) | value1 << value2 | It left shifts the bits of values1 by values2 times. |

Bitwise AND, OR, and XOR follows the truth table while performing operation-

x | y | x & y | x | y | x ^ y |
---|---|---|---|---|

0 | 0 | 0 | 0 | 0 |

0 | 1 | 0 | 1 | 1 |

1 | 0 | 0 | 1 | 1 |

1 | 1 | 1 | 1 | 0 |

Logical operators are also known as **short-circuit logical operators**. There are three logical operators which are explained below-

Operator | Usage | Description |
---|---|---|

Logical AND(&&) | expression1 && expression2 | It checks the second operand when the first operand turns out to be true. If the first operand evaluates to false, then the second operand is not even checked. |

Logical OR(||) | expression1 || expression2 | It checks the second operand when the first operand is false. If the first operand evaluates to true, then the second operand is not even checked. |

Logical NOT(!) | !expression1 | If an expression gives true, then this operator would inverse it and produces false. Similarly, if an expression gives false, then this operator would make it true. |

The assignment operator is used to assign the value to a variable. There is a variation in assignment operator when it is comined with other operators. Such a variation is called shortcut assignment operators.

Let's see how we can use these operators-

a = a + b;

With shortcut assignment operator, you can write like this-

a += b;

Operator | Usage | Description |
---|---|---|

+= | value1 += value2 | value1 = value1 + value2 |

-= | value1 -= value2 | value1 = value1 - value2 |

*= | value1 *= value2 | value1 = value1 * value2 |

/= | value1 /= value2 | value1 = value1 / value2 |

%= | value1 %= value2 | value1 = value1 % value2 |

&= | value1 &= value2 | value1 = value1 & value2 |

|= | value1 |= value2 | value1 = value1 | value2 |

^= | value1 ^= value2 | value1 = value1 ^ value2 |

<<= | value1 <<= value2 | value1 = value1 << value2 |

>>= | value1 >>= value2 | value1 = value1 >> value2 |

>>>= | value1 >>>= value2 | value1 = value1 >>> value2 |

You can think it as a shortcut of an if-else statement. It is called ternary operator because it involves the three operands. Consider the following if-else statement-

if(a>b) c = 10; else c = 12;

With ternary operator, you can do it in one line. The equivalent of above if-else statement is

c = (a > b) ? 10 : 12;

Apart from the above operators, Java also provides some operators which are explained-

- []- It is used in creation, declaration, and access array elements. Example- int[] arr;
- .- It is used to class members of a class. Example- Math.PI
- (
)- It is used to convert a value to a specified type. - new- It is used in the creation of an object.
- instanceof- It is used to determine whether a given object is an instance of a class or not. Example- LinkedList t = new LinkedList(); t instanceof LinkedList will give true.