Java provides a rich operator environment. We can classify the basic operators in java in the following groups:
- Arithmetic Operators
- Relational Operators
- Bitwise Operators
- Assignment Operators
- Logical Operators
Let us now learn about each of these operators in detail.
1. Arithmetic Operators: Arithmetic operators are used to perform arithmetic/mathematical operations on operands.
- Addition ('+') : Adds two operands, like (A + B) or (8 + 3)
- Subtraction ('-'): Subtracts two operands, like (A - B) or (3 - 2)
- Multiplication ('*'): Multiplies two operands, like (A * B) or (5 * 2)
- Division ('/'): Divides the first operand by the second, like (A / B) or (8 / 2)
- Modulus ('%'): Returns the remainder when first operand is divided by the second
- Increment ('++'): Increment the value of an integer. When placed before the variable name (also called pre-increment operator), its value is incremented instantly. For example, ++x. And when it is placed after the variable name (also called post-increment operator), its value is preserved temporarily until the execution of this statement and it gets updated before the execution of the next statement. For example, x++.
- Decrement ('--'): Decrement the value of an integer. When placed before the variable name (also called pre-decrement operator), its value is decremented instantly. For example, --x.
And when it is placed after the variable name (also called post-decrement operator), its value is preserved temporarily until the execution of this statement and it gets updated before the execution of the next statement. For example, x--.
Note: The increment and decrement operators are called unary arithmetic operators as they work with a single operand whereas the rest of arithmetic operators are called binary arithmetic operators as they operate on two operands.

Java
// Java Program to Illustrate Arithmetic Operators
import java.util.*;
// Class 1
class A {
// Main driver method
public static void main(String args[])
{
int a = 10, b = 4, res;
// printing a and b
System.out.println("a is " + a + " and b is " + b);
res = a + b; // addition
System.out.println("a+b is " + res);
res = a - b; // subtraction
System.out.println("a-b is " + res);
res = a * b; // multiplication
System.out.println("a*b is " + res);
res = a / b; // division
System.out.println("a/b is " + res);
res = a % b; // modulus
System.out.println("a%b is " + res);
}
}
Outputa is 10 and b is 4
a+b is 14
a-b is 6
a*b is 40
a/b is 2
a%b is 2
2. Relational Operators: The relational operators determine the relationship that one operand has to the other. The relational operators evaluates the relation between two operations and returns true if the relation exists else false. Here we compare two operands like they are equal or not? or which one is greater etc...
- '==' operator: checks whether the two given operands are equal or not. If so, it returns true. Otherwise it returns false. For example, 5==5 will return 'true' because the both operand are equal and if we compare 5==3 then it will return 'false' because those operand are not equal.
- '!=' operator: checks whether the two given operands are equal or not. If not, it returns true. Otherwise it returns false. It is the exact boolean complement or opposite of the '==' operator(when == return 'true' then != will return 'false'). For example, 5!=5 will return false.
- '>' operator: checks whether the first operand is greater than the second operand. If so, it returns true. Otherwise it returns false. For example, 6>5 will return true.
- '<' operator: checks whether the first operand is lesser than the second operand. If so, it returns true. Otherwise it returns false. For example, 6<5 will return false.
- '>=' operator: checks whether the first operand is greater than or equal to the second operand. If so, it returns true. Otherwise it returns false. For example, 5>=5 will return true.
- '<=' operator: checks whether the first operand is lesser than or equal to the second operand. If so, it returns true. Otherwise it returns false. For example, 5<=5 will also return true.
Java
// Java program for Relational Operators
import java.util.*;
class A {
public static void main(String args[])
{
int a = 10, b = 4;
// relational operators
// check first operand is greater than the second
// operand or not
if (a > b)
System.out.println("a is greater than b");
else
System.out.println(
"a is less than or equal to b");
// Checking first operand is less than the second
// operand or not
if (a < b)
System.out.println("a is less than b");
else
System.out.println(
"a is greater than or equal to b");
// Check first operand is greater than or equal to
// the second operand or not
if (a >= b)
System.out.println(
"a is greater than or equal to b");
else
System.out.println("a is lesser than b");
// Checking first operand is less than or equal to
// the second operand or not
if (a <= b)
System.out.println(
"a is lesser than or equal to b");
else
System.out.println("a is greater than b");
// check both the operand is equal or not
if (a == b)
System.out.println("a is equal to b");
else
System.out.println("a and b are not equal");
// Checking one operand is not equal or not
if (a != b)
System.out.println("a is not equal to b");
else
System.out.println("a is equal b");
}
}
Outputa is greater than b
a is greater than or equal to b
a is greater than or equal to b
a is greater than b
a and b are not equal
a is not equal to b
3. Bitwise Operators: Java provides several bitwise operators to work with integer types, long, int, short, char, byte. Bitwise operators performs bit-by-bit operation on binary representation of integers. These operators act upon the individual bits of their operands.
For Example:
Assume a = 9 and b = 7.
In binary form,
a = 1001
b = 0111
----------
a & b = 0001
a | b = 1111
a ^ b = 1110
Different bitwise operators available in Java are as follows:
- & (bitwise and): Bitwise & operator performs binary AND operation bit by bit on the operands. a&b = 0001 which is 1
- | (bitwise or): Bitwise | operator performs binary OR operation bit by bit on the operands. a|b = 1111 which is 15
- ^ (bitwise XOR): Bitwise ^ operator performs binary XOR operation bit by bit on the operands. a^b = 1110 which is 14
- ~ (bitwise complement): Bitwise ~ operator performs binary NOT operation bit by bit on the operand. ~b = 1000 which is 8
- << (left shift): This operator shifts the bits of the left operand to left by number of times specified by right operand. a<<1 = 10010 = 18
- >> (right shift): This operator shifts the bits of the left operand to right by number of times specified by right operand. a>>1 = 0100 = 4
- >>> (zero fill right shift): Shift right zero-fill operator. The left operand value is shifted to right by number of digits specified by right operand and shifted digits will be replaced by zero. a>>>2 = 0010 = 2
4. Assignment Operator: The assignment operator is used to assign value to a variable. The general form of an assignment operator is:
approach - var = expression
example:
int number = 35;
double db = 3.5456;
String str = "GeeksForGeeks";
Different ways of using assignment operator:
- '=': This is the simplest assignment operator. It assigns the value of left operand to the right operand. For example, a = 3.
- '+=': This operator first adds the left and right operands and then assigns the result to the left operand. For example, a += b is equivalent to a = a + b.
- '-=': This operator first subtracts the right operand from left operand and then assign the result to left operand. For example, a -= b is equivalent to a = a - b.
- '*=': This operator first multiplies the right operand and left operand and then assign the result to left operand. For example, a *= b is equivalent to a = a * b
- '/=': This operator first divides the left operand by right operand and then assign the result to left operand. For example, a /= b is equivalent to a = a / b
- '%=': This operator calculates modulus using left and right operand and then assigns the result to the left operand. For example, a %= b is equivalent to a = a % b
Similarly, we can also use operators like , ^= , &= , |=.
5. Logical Operators: Logical operators perform logical operations like logical AND, logical OR etc. Let us assume that variable a holds the boolean value true and b holds the boolean value false. Below are some logical operators we can use:
- Logical AND ('&&'): This operator will return true if both the left and right operands are true, otherwise it will return false. For example, a && b is false.
- Logical OR ('||'): This operator will return true if any one of the left and right operands are true. It will return false when both left and right operands are false. For example, a || b is True.
- Logical NOT ('!'): This is a unary operator and can be used with a single operand. This will return true if the operand is false and return false if the operand is true. For example, !a is false and !b is true.
Sample truth table with two variables:

6. Other Operators
- instanceof Operator: As the name suggests this operator is to check whether a object or reference variable is of particular class type or interface type or not. Syntax to use instanceof operator:
(Object or reference variable ) instanceof (class or interface type)
This operator return a boolean value either true or false. If the object on the left side of the operator is of the type of class on the right side of the operator then the operator will true otherwise false.
Java
// Java program for instanceof Operator
public class InstanceOf {
// Main driver method
public static void main(String args[])
{
String name = "GeeksforGeeks";
// instanceof operator will return true here
// as the object name is of type String
boolean res = name instanceof String;
System.out.println(res);
}
}
- conditional Operator: We normally use the if-then-else statements for evaluating conditions. Java includes a special operator '?' which can replace if-then-else statements for evaluating conditions. The general form of '?' operator is:
expression1 ? expression2 : expression3
expression1: expression that evaluates to a boolean value i.e. either true or false.
expression2: if expression1 evaluates to true then expression2 is evaluated
expression3: if expression1 evaluates to false then expression3 is evaluated.
Java
// Java program to illustrate conditional operators
class Conditional {
public static void main(String args[])
{
int num1 = 4;
int num2 = 5;
// using conditional operator
num1 = num1 > num2 ? num1 - num2 : num1 + num2;
// num1 stores the value after evaluation of either
// second
// or third expression depending on the condition
// provided in the first expression
// num1 becomes 4+5 = 9
// printing num1
System.out.println(num1);
}
}
Precedence Chart
Below table shows the precedence order of operators from highest to lowest. Operators in same row have equal precedence.

Similar Reads
DSA Tutorial - Learn Data Structures and Algorithms DSA (Data Structures and Algorithms) is the study of organizing data efficiently using data structures like arrays, stacks, and trees, paired with step-by-step procedures (or algorithms) to solve problems effectively. Data structures manage how data is stored and accessed, while algorithms focus on
7 min read
Java Tutorial Java is a high-level, object-oriented programming language used to build web apps, mobile applications, and enterprise software systems. It is known for its Write Once, Run Anywhere capability, which means code written in Java can run on any device that supports the Java Virtual Machine (JVM).Java s
10 min read
Java Interview Questions and Answers Java is one of the most popular programming languages in the world, known for its versatility, portability, and wide range of applications. Java is the most used language in top companies such as Uber, Airbnb, Google, Netflix, Instagram, Spotify, Amazon, and many more because of its features and per
15+ min read
Java OOP(Object Oriented Programming) Concepts Java Object-Oriented Programming (OOPs) is a fundamental concept in Java that every developer must understand. It allows developers to structure code using classes and objects, making it more modular, reusable, and scalable.The core idea of OOPs is to bind data and the functions that operate on it,
13 min read
Quick Sort QuickSort is a sorting algorithm based on the Divide and Conquer that picks an element as a pivot and partitions the given array around the picked pivot by placing the pivot in its correct position in the sorted array. It works on the principle of divide and conquer, breaking down the problem into s
12 min read
Merge Sort - Data Structure and Algorithms Tutorials Merge sort is a popular sorting algorithm known for its efficiency and stability. It follows the divide-and-conquer approach. It works by recursively dividing the input array into two halves, recursively sorting the two halves and finally merging them back together to obtain the sorted array. Merge
14 min read
Bubble Sort Algorithm Bubble Sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in the wrong order. This algorithm is not suitable for large data sets as its average and worst-case time complexity are quite high.We sort the array using multiple passes. After the fir
8 min read
Data Structures Tutorial Data structures are the fundamental building blocks of computer programming. They define how data is organized, stored, and manipulated within a program. Understanding data structures is very important for developing efficient and effective algorithms. What is Data Structure?A data structure is a st
2 min read
Breadth First Search or BFS for a Graph Given a undirected graph represented by an adjacency list adj, where each adj[i] represents the list of vertices connected to vertex i. Perform a Breadth First Search (BFS) traversal starting from vertex 0, visiting vertices from left to right according to the adjacency list, and return a list conta
15+ min read
Binary Search Algorithm - Iterative and Recursive Implementation Binary Search Algorithm is a searching algorithm used in a sorted array by repeatedly dividing the search interval in half. The idea of binary search is to use the information that the array is sorted and reduce the time complexity to O(log N). Binary Search AlgorithmConditions to apply Binary Searc
15 min read