Scroll to top

# Arithmetic Operators in java

In this section, we will learn about Arithmetic Operator Precedence and Operator Associativity.

## Operator Precedence

Precedence decides which operator will be evaluated first in a case where more than one operator is present in the same calculation.

## Operator Precedence Table

OperatorsPrecedence(High to Low)
postfixexpr++ expr
unary++expr —expr +expr –expr ~ !
multiplicative* / %
shift<< >> >>>
relational< > <= >= instanceof
equality== !=
bitwise AND&
bitwise exclusive OR^
bitwise inclusive OR|
logical AND&&
logical OR||
ternary? :
assignment= += -= *= /= %= &= ^= |= <<= >>= >>>=

## Example of Precedence

``````/*
* Here we will see the effect of precedence in operators life
*/
class OperatorPrecedenceExample {

public static void main(String args[]) {
int i = 40;
int j = 80;
int k = 40;

int l = i + j / k;
/*
* In above calculation we are not using any bracket. So which operator
* will be evaluated first is decided by Precedence. As precedence of
* divison(/) is higher then plus(+) as per above table so divison will
* be evaluated first and then plus.
*
* So the output will be 42.
*/

System.out.println("value of L :" + l);

int m = (i + j) / k;
/*
* In above calculation brackets are used so precedence will not come in
* picture and plus(+) will be evaluated first and then divison()/. So
* output will be 3
*/

System.out.println("Value of M:" + m);
}
}``````

## Operator Associativity

If two operators have the same precedence in the calculation then Associativity of the operators will be used to decide which operator will be executed first.

## Example of Associativity

``````package jbt.bean;

/*
* Here we will see the effect of precedence in operators life
*/
public class OperatorAssociativityExample {

public static void main(String args[]) {
int i = 40;
int j = 80;
int k = 40;

int l = i / k * 2 + j;
/*
* In above calculation we are not using any bracket. And there are two
* operator of same precedence(divion and multiplication) so which
* operator(/ or *) will be evaluated first is decided by association.
* Associativity of * & / is left to right. So divison will be evaluated
* first then multiplication.
*
* So the output will be 82.
*/

System.out.println("value of L :" + l);

int m = i / (k * 2) + j;
/*
* In above calculation brackets are used so associativity will not come
* in picture and multiply(*) will be evaluated first and then
* divison()/. So output will be 80
*/

System.out.println("Value of M:" + m);
}

}``````

## Operators in Java

Let us discuss each operator individually.

Assignment (=) and  Arithmetic operators(+, -, *, /) work the same way as they do in other programming languages, so we will not discuss them here. The precedence for  ‘/‘  and  ‘*‘ operators is higher than sum(+) or minus() or modular division(%) ###### JBT
https://javabeginnerstutorial.com/