×

Operators in Java

There is a good operator environment provided by Java. These operators are divided into four different groups i.e. arithmetic, bitwise, relational, and logical. There are other operators also available to handle some unusual situations.

Below is a detailed description of different types of operators.

Arithmetic operators

They are similarly used in mathematical expressions as they are used in algebra. Following are the list of arithmetic operators:

Operator Result
+ Addition (also unary plus)
- Subtraction (also unary minus)
* Multiplication
/ Division
% Modulus
++ Increment
+= Addition assignment
-= Subtraction assignment
*= Multiplication assignment
/= Division assignment
%= Modulus assignment
-- Decrement

The operands of the arithmetic operators must be defined as integer type for the processing, and we can also use them on char type as the char type is a subset of int type.

The Basic Arithmetic Operators (Addition, Subtraction, Division, and Multiplication).

The basic arithmetic operators behave like the algebraic operations for numeric types. The unary minus (-) operator subtracts its single operand, and the unary plus (+) operator returns the assigned value of its operand.

The Modulus Operator (%)

This operator returns the remainder of a division operation. We can apply it on a floating-point type as well.

Compound Assignment Operator

These operators are used to combine an arithmetic operation with an assignment. As for example:

a = a+ 10;

            We can rewrite the above statement as a compound assignment operator here as:

a += 10;

In this case, the value of ‘a’ is increased by 4.

a= a% 2;

            Rewritten as:

a %= 2;

In this case, the remainder of ‘a/2’ is obtained and puts back the value into the variable ‘a’.

The compound assignment operators are ‘shorthand’, so it saves us a bit of typing.

Increment and Decrement Operator

The ++ and – are the increment and decrement operators of Java. The increment operator increases its operand by one, and the decrement operator decreases its operand by one.

x= x+1; can be written using increment operator as x++.

Similarly,

x= x-1; can be written using decrement operator as x--.

These operators appears both in postfix (a++) and prefix (++a) form. There is no difference between them, but when we use them with the large expression, then the difference between them appear such as with loops and conditional statement. In the prefix form, the operand is incremented or decremented before the value is obtained for use in the expression. In the postfix form, the value already in the operand is used in the expression, and then it is modified.

As for example:

x= 10;

y= ++x;

In this case, the value of y is set to 11 because the increment occurs before x is assigned to y.

However, when we apply the postfix increment,

X= 4;

Y= x++;

In this case, the value of y remains 4 as the value of x is obtained before the increment.

The Bitwise Operators

The Bitwise operators work upon the individual bits of their operand. It can be used with any of the integer types. Below is a list of Bitwise operators:

Operator Result Description
~ Bitwise unary NOT This operator reverses all the bits of the operand. It inverts all the bits of its operand. For example, 48 (00110000) becomes 207 (11001111).
& Bitwise AND It returns 1 bit if both operands are also 1 and a zero is produced in all other cases. E.g. 00110000                                                           00010001 -----------------------                                                           00010000   
| Bitwise OR It combines bits and returns 0 if and only if both bits are 0. And in all other cases, it returns 1. E.g. 00110000 00010001                                                                              -------------                                                                              00110001
^ Bitwise exclusive OR It combines bits and returns 1 bit if and only if exactly one operand is 1 and in all other cases, it returns zero. E.g. 00101010 00001111 ------------- 00100101
>>  Shift right Right shift operator shifts all the bits to the right at the specified number of times. It can be written in the form “value >>pos”. Here, pos denote the number of positions and value as value needed to be shifted.E.g. 00100011 >>2                                                                                  00001000
>>>  Shift right zero fill This is also known as an unsigned shift right operator, which always shift zeroes into a high-order bit. E.g. 11111111 >>>3                                                                               00011111
<<  Shift left It shifts all the bits to the left a specified number of times. It is written in the form as “value <”. Here, pos specifies the number of positions to be shifted and the value in value.
&= Bitwise AND assignment All the above operators have a compound form similar to that of the compound arithmetic operators. It combines the assignment with the bitwise operations. E.g. “a= a>>4” will be written as “a >>= 4”
|= Bitwise OR assignment
^= Bitwise exclusive OR assignment
>>= Shift right assignment
>>>= Shift right zero fill assignment
<<= Shift left assignment

These operators manipulate the bit within an integer. Binary numbers of varying bit widths represent the integer types. Let’s understand using an example.

The byte value for 48 in binary is 00110000, each position represents a power of 2, starting with 20 at the rightmost bit. The next would be 21 continuing toward the left 22 or 4, then 8, 16, 32. So, 48 has 1 bits set at position 32 and 16 thus 48 is the sum of 32+16.

Table showing the outcome of each bitwise logical operation.

A B A | B A & B A ^ B ~A
0 0 0 0 0 1
1 0 1 0 1 0
0 1 1 0 1 1
1 1 1 1 0 0

Relational Operators

These operators determine the relationship between operands like equality and ordering.

Operator Result Description
== Equal to It returns true if operands are equal else false.
!= Not equal to It returns true if operands are not equals, else false.
>  Greater than It returns true if one operand is greater than other, otherwise false.
<  Less than It returns true if one operand is less than the other one, otherwise false.
>= Greater than or equal to It returns true if one operand is greater than or equal to another one, otherwise false.
<= Less than or equal to It returns true if one operand is less than or equal to another one, else false.

Boolean Logical Operators

These operators operate only on Boolean operands. It combines two Boolean values to form resultant Boolean values.

Operator Result Description
& Logical AND It returns true if both operands are also true and a false is returned in all other cases
| Logical OR It returns False if and only if both bits are zero, and in all other cases it returns true.
^ Logical XOR (Exclusive OR) It returns true if and only if exactly one operand is true and in all other cases it returns false.
|| Short-circuit OR It returns true if any one or both of its operand is true, false otherwise.
&& Short-circuit AND If both operands are true then only it returns true.
! Logical unary NOT It operates on a single operand and returns the reverse of the operand. True if false, false if true.
== Equal to It checks if the values of two operands are equal or not, if yes it returns true.
!= Not equal to It checks if the left-hand side operand is not equal to right hand side.
?: Ternary if-then-else It is written in the form “expression1? expression2: expression3”. The first expression evaluates to a Boolean value, if expression1 is true then second expression is evaluated otherwise third expression.

The following table shows the effect of each logical operations:

ABA|BA&BA^B!A
FalseFalseFalseFalseFalseTrue
TrueFalseTrueFalseTrueFalse
FalseTrueTrueFalseTrueTrue
TrueTrueTrueTrueFalseFalse

Related Topics

java.lang.NumberFormatException for Input String

java.lang.NumberFormatException for Input String The exception java.lang.NumberFormatException for input string occurs when we try to convert a string into a number format. For example, if someone converts the string “Tutorial & Example”...

3 minutes read.

Enum Java Interview Questions

1. What exactly is Java? Java is a portable, high-level, object-oriented, robust, secure, platform-independent, multi-threaded, high-performance programming language. Developed in June 1991 by James Gosling, also known as Platform. 2. Enum is...

3 minutes read.

FizzBuzz Program in Java

FizzBuzz is a well-known children's game. This game helps children learn division. The FizzBuzz game is becoming a popular programming question, appearing frequently in Core Java interviews. This section will...

3 minutes read.

Anonymous Function in Java

A function defined as being unbound from an identifier is called an anonymous function. Because they permit access to variables within the scope of the contained function, these are a...

4 minutes read.

Shallow copy in Java

Java's most important task is making a copy or clone of an object. In this part, we'll talk about shallow copies in Java and how to make them of Java...

4 minutes read.

What is String in Java?

What is String in Java? Strings are a collection of characters that are commonly used in Java programming. Strings are regarded as objects in the Java programming language. “String” is a Java...

4 minutes read.

Java.net.SocketException

Exception The problem occurred during the execution of the program. If an exception occurs in the program, the program gets terminated. To skip the exception occurring statements, we have to handle...

4 minutes read.

Snake and Ladder Problem in Java

Find the smallest number of dice throws necessary to reach the destination or last cell from the source or first cell on a snake and ladder board. Essentially, the player...

6 minutes read.

Split the Number String into Primes in Java

Given is a string that only contains digits and serves to represent a number. Our goal is to split the string of numbers in a way that ensures each segment...

2 minutes read.

House Numbers in Java

In this section, we will discuss about house number in Java. It is a sum of cubes, each of which has a dimension of h + 1. There is a...

3 minutes read.

Java Variable

The variable is the basic unit of storage in a program. We define a variable using an identifier, a type, and an optional initializer in Java. In Java, variables must be...

4 minutes read.

Java Lock

A lock is indeed a threaded synchronization technique similar to Java's synchronized blocks, however, locking can be more complex. It's not like we can completely get rid of the synchronized...

5 minutes read.

Heart Pattern in Java

Heart Pattern is yet another intricate pattern program, however, due to its complexity, interviewers hardly ever inquire about it. Method for Printing the Heart Number Pattern Put the value of the total row...

2 minutes read.

Delete a Cycle from a Linked List in Java

Assume a method detectAndRemoveLoop(), which examines if a given Linked List includes a loop and, if so, eliminates this Loop and returns true. This returns false if the list does...

7 minutes read.

HashMap Vs HashTable

HashMap HashMap is the basic implementation of the map interface in Java. HashMap stores the data in key and value pairs. Keys are used to access the value of the element. It...

5 minutes read.

The final Keyword in Java

The final keyword is employed in several instances. Firstly, the non-access modifier final only applies to variables, methods, and classes. The final can be used in the following situations. Final Variables When...

6 minutes read.

Java program to determine whether all leaves are at same level

In this program, we must determine whether or not all of the binary tree's leaves are at the same level. If a node has no child nodes, it is said to...

3 minutes read.

Java Generics Questions

Introduction We'll walk through a few real-world examples of interview questions and responses for Java generics in this article. Java 5 saw the debut of the fundamental idea of generics. Due to...

9 minutes read.

Convert JSON File to String in Java

Before understanding the conversion of JSON file to string, one must know about JSON. What is JSON? JSON stands for JavaScript Object Notation. It is an open standard format lightweight, text-based, and...

3 minutes read.

Java Calculate Average of List

The list is a linear data structure used in Java to store ordered data collections. Additionally, it accepts duplicate values while maintaining insertion order. It is sometimes necessary to find...

3 minutes read.