×

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 Custom Exception

Java Custom Exception Java language facilitates us to create our own exceptions. The class intended to throw the Custom Exception has to be derived from the Java Exceptionor RuntimeExceptionclass. The Java...

4 minutes read.

Java 8 Consumer Interface in Java

The Consumer Interface is used to implement the functional programming in Java. The Consumer Interface indicates a function that accepts a single input and outputs a result. These functions don’t...

2 minutes read.

Bin Packing Problem Java

Assigning some items with known weights to bins with consistent capacities is necessary for the bin packing problem. The goal is to use the smallest possible boxes while ensuring everything is put...

6 minutes read.

Java import packages

To know about the importing the packages of Java, we need to understand about how to packages work. Packages The package in Java is a collection of Classes and Interfaces. The packages...

3 minutes read.

String Programs in Java

String Programs in Java: In Java, a String is an immutable object that represents a sequence of characters. For example, “Tutorial” is a string that consists of 8 characters: ‘T’,...

10 minutes read.

Arrow Operator in Java

The introduction of arrow functions in ES6 gives you a more precise approach to define JavaScript functions. We can write shorter function syntax thanks to them. Your code will be...

4 minutes read.

Console Errors in Java

An unlawful motion taken through the person that reasons this system to act abnormally is amistake until this system is compiled or run; maximum programming mistakes pass unnoticed.The software is...

3 minutes read.

Java BufferedWriter

BufferWriter Class: It is used to write the data more efficiently. This class is present in the java.io package, it inherits the data from the Writer class. Writer class is...

4 minutes read.

Timestamp Operation in Java

JDBC escape syntax is supported by Timestamp's formatting and parsing functions. Additionally, it adds support for fractional seconds values for SQL TIMESTAMP.java.util.Date is wrapped in a lightweight wrapper that enables...

3 minutes read.

Different Ways to Take Input from User in Java

Any information provided to a system for use is known as user input. Any responsive software or application must include user input. In Java, there are 4 different ways to...

5 minutes read.

Java LinkedHashMap

LinkedHashMap implements the Map interface. It inherits the HashMap class. Some essential features of LinkedHashMap are: It contains the values based on the keys. It maintains the order of insertion. It contains unique...

5 minutes read.

Bubble Sort in Java

Bubble Sort in Java Bubble sort isalso known as sinking sort. It is one of the simplest sorting algorithms. In the bubble sort algorithm, the given array is traversed from left...

5 minutes read.

Hello Program in Java

Hello Program in Java The Hello program in Java displays the word Hello on the console. It is the basic program in Java. In this section, we will learn different ways...

3 minutes read.

How to avoid deadlock in java

Deadlock: A deadlock is an event that never going to occur. In java, deadlock is just a part of the multithreading. It is an environment that allows us to run multiple...

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

All the important string methods in Java

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

4 minutes read.

Block Swap Algorithm for array rotation in Java

An array and r, the rotation factor by which the array must be rotated, are both provided to us. We must then return the rotated array. A well-known and popular method is...

4 minutes read.

Check the presence of Substring in a String in java

In java, the string can be treated as class and datatype. The string contains words and numbers but should be in double-quotes. Example: ” Omsairam” Substring The part of the string is called...

2 minutes read.

Java String trim() method

Java String trim() method returns String after eliminating leading and trailing spaces. Note:- Java String trim() method doesn't trim or omit middle spaces. Syntax: public String trim() Returns: It returns string with omitted leading and...

2 minutes read.

How to resolve Illegal state exceptions in Java

What is IllegalStateException? When a method is called at the incorrect time, a runtime exception called an IllegalStateException is raised in Java. This exception is utilized to show that a method...

3 minutes read.