Java Tutorial

Java Tutorial Java Features C++ vs Java Java History Java Hello World Java Development Kit Java Runtime Environment Java Virtual Machine Difference between JDK, JRE, and JVM Memory Areas in Java Java Operators Java Keywords Primitive Data Types Variables

Java Loops

Java Do While Loop Java While Loop Java For Loop Java Enhanced For Loop

Java Programs

Java Basic Programs Factorial Program in Java Fibonacci Series Program in Java Prime Number Program in Java Palindrome Number Program in Java Armstrong Number Program in Java Anagram Program in Java Pattern Programs in Java Calculator Program in Java Leap Year Program in Java Addition Program in Java Number Pattern Programs in Java Star Pattern Programs in Java Package Program in Java Pyramid Program in Java Sorting Program in Java String Palindrome Program in Java Even Odd Program in Java For Loop Program in Java If Else Program in Java Switch Case Program in Java GCD Program in Java LCM Program in Java Hello Program in Java Matrix Program in Java Menu Driven Program in Java Series Program in Java Client Server Program in Java Swapping Program in Java Pig Latin Program in Java Tower of Hanoi Program in Java Recursion Program in Java Matrix Multiplication Program in Java Perfect Number Program in Java Classes and Objects in Java Example Programs String Programs in Java Array Programs in Java Constructor Program in Java Inheritance Program in Java Abstract class Program in Java Interface Program in Java Encapsulation Program in Java Polymorphism Program in Java Exception Handling Program in Java Multithreading Program in Java Thread Program in Java Collection Programs in Java ArrayList Program in Java Stack Program in Java Applet Program in Java Swing Program in Java JDBC Program in Java How to run Java program in command prompt How to run Java program in Eclipse

Java Sorting

Sorting Algorithms in Java Merge Sort in Java Quick Sort in Java Bubble Sort in Java Insertion Sort in Java Selection Sort in Java Heap Sort in Java Radix Sort in Java Topological Sort in Java Bucket Sort in Java Counting Sort in Java

Java OOPs Concepts

OOPs - Object Oriented Programming Objects and Classes in Java Java Naming Conventions Constructors in Java Java this keyword Java static keyword Inheritance in Java Aggregation in Java Java super keyword Constructor Chaining and Constructor Overloading Java Polymorphism Static and Dynamic Binding in Java Java Abstraction Abstract class in Java Interface in Java Difference between Abstract class and Interface Java final keyword Packages in Java Access Modifiers in Java Java Wrapper classes Java Numbers Java Characters Java Integer Java Boolean Java Arrays Java Command Line Arguments Java strictfp Keyword Java Math

Java Strings

Java Strings Java String Methods StringBuilder in Java StringBuffer in Java Java Regular Expressions StringBuffer vs StringBuilder String vs StringBuffer String vs StringBuilder String Manipulation in Java Java String Concatenation How to Reverse a String in Java String Array in Java How to Compare Two Strings in Java How to Concatenate Two Strings in Java Why String in Immutable in Java java.lang.NumberFormatException for Input String String Pool in Java Java Generate Random String How to take String Input in Java Java String Interview Questions

Java Exceptions

Exception Handling in Java Java try catch Java throw Java throws Difference between throw and throws Java finally Java Custom Exception Java Exception Propagation

Garbage Collection

Automatic Resource Management in Java Java Garbage Collection Java finalize() Java gc() Difference between final, finally and finalize


Multithreading in Java Process and Thread in Java Basic Terms in Multithreading Java Thread creation Thread Scheduler in Java Java Thread class DeadLock in Java

Java IO

Java IO Java Read File Java BufferedWriter Java InputStreamReader Java File Java Read File Line By Line Java FileOutputStream Jar File in Java


Java Serialization Java transient


Java Network Programming Java Socket Programming Java URL Java URLConnection HttpURLConnection in Java Java InetAddress Java DatagramSocket and Java DatagramPacket


Java AWT


Swing in Java

Java Collections

Collections in Java Java List Interface ArrayList in Java LinkedList in Java Vector in Java Stack in Java ArrayList vs LinkedList in Java ArrayList vs Vector in Java Java Set Interface HashSet in Java LinkedHashSet in Java TreeSet in Java Java Queue Interface PriorityQueue in Java ArrayDeque in Java Java Map Interface HashMap in Java LinkedHashMap in Java TreeMap in Java Dictionary in Java Hashtable in Java Properties in Java Collections class in Java Java Comparable Java Comparator Comparable vs Comparator in Java

Java Generics

Generics in Java

Java Annotations

Annotations in Java


Java JDBC Tutorial

Java Differences

Java vs JavaScript Python vs Java Kotlin vs Java Java vs C++ C# vs Java Static vs Non-static in Java C vs Java int vs Integer in Java Stack vs Heap in Java Java Array vs ArrayList

How to

How to run Java program How to set path in Java How to check the Java version in cmd How to install Java in Windows 10 How to run Java program in cmd How to call a method in Java How to sort an array in Java How to iterate HashMap in Java How to write Java program How to create an array in Java How to create a package in Java How to generate random numbers in Java How to input String in Java How to create thread in Java How to find length of String in Java How to sort a string in Java How to use scanner in Java How to achieve multiple inheritance in Java How to run Java program in Eclipse How to call a function in Java How to create array of objects in Java How to create custom exception in Java How to achieve abstraction in Java How to call static method in Java

Java 8 Features

Java 8 Features Lambda Expressions in Java Functional Interface in Java Streams in Java Java Base64 Encoding and Decoding Parallel Arrays Sort in Java

Java 9 Features

Java 9 Tutorial Java 9 Try With Resources Java 9 Interface Private Method

Java Servlet Tutorial

Java Servlets Tutorial

Java JSP Tutorial

Java JSP Tutorial

Hibernate Tutorial

Hibernate Tutorial

Spring Tutorial

Spring Tutorial

Spring MVC Tutorial

Spring MVC Tutorial

Jenkins Tutorial

Jenkins Tutorial

Java Math Methods

Math.abs() Math.acos() Math.addExact() Math.asin() Math.atan () Math.atan2() Math.cbrt() Math.ceil() Math.copysign() Math.cos() Math.cosh() Math.decrementExact() Math.exp() Math.expm1() Math.floor() Math.floorDiv() Math.floorMod() Math.getExponent() Math.hypot() Math.IEEEremainder() Math.incrementExact() Math.log() Math.log10() Math.log1p() Math.max() Math.min() Math.multiplyExact() Math.multiplyFull() Math.negateExact() Math.nextAfter() Math.nextDown() Math.nextUp() Math.pow() Math.random() Math.rint() Math.round() Math.scalb() Math.signum() Math.sin() Math.sinh() Math.sqrt() Math.subtractExact() Math.tan() Math.tanh() Math.toDegrees() Math.toIntExact() Math.toRadians() Math.ulp()

Java String Methods

toCharArray() copyValueOf() endsWith() equals() equalsIgnoreCase() format() getBytes() getChars() hashCode() indexOf() intern() isEmpty() join() lastIndexOf() length() replace() replaceAll() replaceFirst() split() startsWith() subSequence() substring() toLowerCase() toUpperCase() trim() valueOf()

Java Conversion

Java Convert String to int Java Convert int to String Java Convert String to long Java Convert long to String Java Convert String to float Java Convert float to String Java Convert String to double Java Convert double to String Java Convert String to Date Java Convert Date to String Java Convert String to Object Java Convert Object to String Java Convert String to char Java Convert char to String Java Convert int to long Java Convert long to int


Functional Interfaces in Java Singleton class in Java Awesome explanation of Strings in Java Object class in Java Static class in Java All the important string methods in Java String Handling Method in Java What are Array strings in Java Advantages and Disadvantages of Strings in Java Big Decimal class in Java Class definition in Java Char and String differences in Java Difference between String, StringBuffer and StringBuilder in java Replace character in string Java String Coding Interview Questions in Java What is String in Java? String isnullorempty in Java String Matches in Java Trim Method in String Java Bean class in Java Libraries in Java Arithmetic Operations on String in Java

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


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 <<pos”. 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:

A B A|B A&B A^B !A
False False False False False True
True False True False True False
False True True False True True
True True True True False False