• An operator is a symbol that tells the computer to perform certain mathematical or logical calculations.
• Operators are used in programs to manipulate data and variables.
• Java provides the following operators:

Arithmetic operators:

• Java provides all the basic arithmetic operators.
 Operator Meaning + Addition or unary plus – Subtraction or unary minus * Multiplication / Division % Modulo division
1. Integer Arithmetic
• When both the operands in a single arithmetic expression such as a+b are integers, the expression is called an integer expression, and the operation is called integer arithmetic.
• Integer arithmetic always produces integer result.
1. Real Arithmetic
• An arithmetic operation involving only real operands is called real arithmetic.
• A real operand may assume values either in decimal or exponential notation.
• Modulus operator % can be applied to the floating point data as well.
1. Mixed-mode Arithmetic
• When one of the operands is real and the other is integer, the expression is called a mixed-mode arithmetic expression and result will be in real.
```class floatDemo
{
public static void main(String args[])
{
float a=35.5f, b=5.2f;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("a+b="+(a+b));
System.out.println("a-b="+(a-b));
System.out.println("a*b="+(a*b));
System.out.println("a/b="+(a/b));
System.out.println("a%b="+(a%b));
}
}
```

Relational Operators

• Relational operators are used for comparing two operands.
• We can compare operands for their relational equality.
 Operator Meaning < Is less than <= Is less than or equal to > Is greater than >= Is greater than or equal to == Is equal to != Is not equal to
```class RelationalDemo
{
public static void main(String args[])
{
float a=15.0f,b=20.75f,c=15.0f;
System.out.println("a="+a);
System.out.println("b="+b);
System.out.println("c="+c);
System.out.println("a<b is "+(a<b));
System.out.println("a>b is "+(a>b));
System.out.println("a==c is "+(a==c));
System.out.println("a<=c is "+(a<=c));
System.out.println("a>=b is "+(a>=b));
System.out.println("b!=c is "+(b!=c));
System.out.println("b==a+c is "+(b==a+c));
}
}
```

Logical Operator

• Java has following logical operators:
 Operator Meaning && Logical AND || Logical OR ! Logical NOT
```class LogicOprDemo
{
public static void main(String args[])
{
int a=15,b=30,c=15,d=30;
if (a==c && b==d)
System.out.println("Equal");
else
System.out.println("Not Equal");
if (a<b || a<c)
System.out.println("A is smaller than B & C");
else
System.out.println("A is greater than B & C");
if(a!=b)
System.out.println("A & B are not equal");
else
System.out.println("The value of a and b are equal");
}
}
```

Assignment Operator

• Assignment operator is used to assign a value of an expression to a variable.
• We can also use ‘shorthand’ operators for the same purpose as follow:Var_name opr = <exp>;
• For example, x = x+ (y+1) is equivalent to x+=y+1;
 Simple assignment operators Shorthand operator x=x+1 x+=1 x=x*1 x*=1 x=x*(n+1) x*=n+1 x=x/(n+1) x/=n+1 x=x%y x%=y

Increment/ Decrement Operator

• Java supports two increment and decrement operators: ++ and – –
• The operator ++ increments value by 1 to the operand while – subtracts by 1.
• Both operators can be used in the following format:
• ++X or X++;
• –X or X–;
• Where, ++X is equivalent to X=X+1 and –X is equivalent to X=X-1;
• When operator comes first before the operand then it is called prefix operator and if operator comes after operand, it is called postfix operator or notation
```class incDecDemo
{
public static void main(String args[])
{
int x=10, y=20;```

System.out.println(“X=” + x);
System.out.println(“Y=” + y);
System.out.println(“++X=” + ++x);
System.out.println(“Y++” + y++);
System.out.println(“X=” + x);
System.out.println(“Y=” + y);
}
}

Conditional Operators

• Java also supports special operator “? :” known as ternary operator.
• It is used to construct conditional expressions similar to if statement
• It has the following form:

<exp1> ? <exp2> : <exp3>

• Consider the following example:
```  int a=10,b=15;
if (a>b)
x=a;
else
x=b;
```
• We can generate same result using ternary operator as follow:
`x=(a>b) ? a: b;`

Bitwise Operators

• Java supports another special kind of operators known as bitwise operators for manipulation of data at bit level.
• These operators are used for testing the bits, or shifting them to the right or left.
• It may not be applied to float or double.
 Operators Meaning & Bitwise AND | Bitwise OR ^ Bitwise Exclusive OR ~ Bitwise Unary NOT << Shift left << Shift right
• AND (if Both operand are 1 then result is 1 else 0):
• 0101 AND 0011 = 0001
• OR(if Both operand are 0 then result is 0 else 1):
• 0101 OR 0011 = 0111
• XOR(if no. of 1 is odd then result is 1and 0 if even):
• 0101 XOR 0011 = 0110
• NOT(Complement )
• NOT 0111 = 1000
• 0111 LEFT-SHIFT = 1110 (Shifts all bits to the left)
• 0111 RIGHT-SHIFT = 0011(Shifts all bits to the right)

Logical Bitwise Operations

 A B OR (A|B) AND (A&B) XOR (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

• x=12;y=10;
z = x & y; // z is 8
• It works as follow:

0000 1100

& 0000 1010

————–

0000 1000 = 8 (decimal)

Special Operator

• Java supports some special operators such as instanceof operator and member selection operator(.)

Instanceof Operator:

• It is an object reference operator and returns true if the object on the left-hand side is an instance of the class given on the right-hand side.
• It helps to determine whether the object belongs to a particular class or not.
• For example, person instanceof student

is true if the object person belongs to the class student; otherwise false.

Dot operator:

• It is used to access the instance variables and methods of class objects.
• For example:
• roll_no //reference to the variable roll_no
• countPer() //reference to the method countPer()
• It can also be used to access classes and sub-packages form a package.