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); } } |
a 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" ); } } |
a 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 = "Lazyroar" ; // instanceof operator will return true here // as the object name is of type String boolean res = name instanceof String; System.out.println(res); } } |
true
- 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); } } |
9
Precedence Chart
Below table shows the precedence order of operators from highest to lowest. Operators in same row have equal precedence.
This article is contributed by Harsh Agarwal. If you like Lazyroar and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the Lazyroar main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.