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.
Operators | Precedence(High to Low) |
---|---|
postfix | expr++ expr— |
unary | ++expr —expr +expr –expr ~ ! |
multiplicative | * / % |
additive | + – |
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(%)
nice good…
nice good…
Good to know that it helped you.
m = i / (k * 2) + j;
there m=80 is incorrect.
m is integer
m = i / (k * 2) + j;
there m=80 is incorrect.
Value will be 80 only. Please check once again.
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.
Excellent site…it helps a lot.
Excellent site…it helps a lot.
Today I stated the learning by seeing this blog, I am the new one to programming. Your blessing is required
nicely structured and well understood ….thankyou
Nice coding n commenting …..well structured organized, easy to understand….thanks for big
good examples are not giving you.
In my side opinion is examples will be given on understanding purpose but that examples will be not understandable way.try to get user understandable examples.
Great Work!
this is called perfect java tutorial. the site is awesome . clearely explain each n every concept
Plss give output of the programs…
This site is incredible!!!!!!!…. This is what a beginner is looking for… Sooo easy and worthy…. Kudos Author
very helpful website ….
sir can u plz mail me some shift operator programes.
i want basic java interview questions …….
Really very useful for beginners…
Just let me know some other same tuorials for SQL and Javascirpt….
Appreciate your concern on this..:-)
Could you please explain to me the following expression
int m=i/(k*2)+j;
(precedence doesn’t come into action and that is understood)
While evaluating the expression this is what happens(40/(40*2)+80)=(40/(80)+80)==(1+80)==81
Always the (/) is considered to give us the quotient.
Please do explain the same.
Hi Sir Really This website is good referral website for beginners
this website very helpful for us and sir thank u
this website helpful for us and thank u sir
Can you explain me the function of this shift >>> operator?
Please check your mail.
Very nice website for beginners.
Really Nice Website for Beginners……….(Y)
Every concept explained in detaill and easy to understand way………….
Thanks Akshay 🙂
NICE SITE.THE MATTER IS EASY TO UNDERSTAND AND LEARN.
Simple and Clear and Comprehensive.
Needed a quick review of core java and found it here.
I wanted to learn Java. I googled and reached your site. Your syllabus is very easy to understand and can be self learned. Thanks for the site and wishes for your hardwork.
HI gautam, i have a doubt that what are the things which will come outside the main and what are the things will come inside the main method, there is a huge confusion about this and where the program actually starts??? plz kindly help me……………….. waiting for the reply
very simple and easy to learn… thank you
learning java became soo easy.. !!! i love this website..!!! this helps beginners alot.. !! expecting more from you… 🙂
good programs..
easy to learn keep doing guys..
Do you mind if I quote a few of your posts as long as I provide credit and sources back to
your webpage? My blog is in the exact same niche as yours and
my visitors would truly benefit from some of the information you provide
here. Please let me know if this okay with you. Thank you!
Yes, You can include the post as long as you provide the proper credit.
Thanks
Really nice web site for learning java
very nice website.. very thankful to u ..
i love to study in this website thank you
very nice each and every point explained in detail
i love this website….i found a clear description in each and every topic
thanku
Accidentally came to this site. but not able to leave the site:) nicely written, nice to read. Thanks!!!
Thanks for your appreciation.
Nice website….(y)
Hi Sujay,
Thanks for your nice comment. 🙂
Regards
Bhai.. good work. Will finish up quickly everything , from start to end.
Everything is compiled so nicely , that’s required for each developer to know.
Hi hill
same here
This is the real life i want!!!!!!!!!!!!!1
Explanation is good.