# 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

Operators Precedence(High to Low)
postfix expr++ 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(%)

Author

## 56 thoughts

1. arpitha says:

good examples are not giving you.

2. andrew says:

Nice coding n commenting …..well structured organized, easy to understand….thanks for big

3. nikita says:

nicely structured and well understood ….thankyou

4. rams says:

Today I stated the learning by seeing this blog, I am the new one to programming. Your blessing is required

5. Ankita says:

Excellent site…it helps a lot.

6. Ankita says:

Excellent site…it helps a lot.

7. Jyothy says:

Very good site. It includes good details about Core Java. I am learning Core Java at the moment. i would like to complete Core Java and also rest of the sections.

Thanks for good compilation with good examples.

8. Thilina Sampath says:

m = i / (k * 2) + j;
there m=80 is incorrect.

1. Value will be 80 only. Please check once again.

9. Thilina Sampath says:

m = i / (k * 2) + j;
there m=80 is incorrect.

1. xxx says:

m is integer

10. saran says:

nice good…

This site uses Akismet to reduce spam. Learn how your comment data is processed.