Operator Precedence
Estimated time to read: 1 minute
Overview¶
Java will evaluate operators it finds in each expression.
Operator Hints¶
In general, it is best to use parenthesis () to clarify expressions, rather than rely on operator precedence, but here are additional resources on operator precedence:
However, rather than rely on operator precedence in a case like: if (a < b && c > d)
you could clarify it explicitly as: if ((a < b) && (c > d))
Now it is explicitly clear that the result is the AND of the two comparisons.
Operator Precedence¶
Operators in Java take precedence (priority) in the following order:
Generics¶
Symbol | Operation |
---|---|
++ | Pre or post increment |
-- | Pre or post decrement |
+,- | Unary operators for sign |
~ | Bitwirse Complement |
! | Logical NOT |
(type) | Any type conversion |
Mathematics - MDM¶
Symbol | Operation |
---|---|
* | Multiplication |
/ | Divison |
% | Modulo |
Mathematics - AS¶
Symbol | Operation |
---|---|
+ | Addition |
- | Subtraction |
String Concatenation¶
Symbol | Operation |
---|---|
+ | String Concatenation |
Bitwise - Shifts¶
Symbol | Operation |
---|---|
<< | Bitwise, shift left |
>> | Bitwise, shift right, sign extension |
>>> | Bitwise, shift right, zero extension |
Comparisons¶
Symbol | Operation |
---|---|
<. <=, >, >= | Comparisons |
instanceof | Type Identification |
Equality¶
These only work on primitives, they do not work against classes. For classes, use thing[1].equals("")
Symbol | Operation |
---|---|
== | Equality |
!+ | Inequality |
Bitwise - Comparisons¶
Symbol | Operation |
---|---|
& | Bitwise, AND |
^ | Bitwise, X OR |
| | Bitwise, OR |
Logical - Comparisons¶
Symbol | Operation |
---|---|
&& | Logical AND |
|| | Logical OR |
Ternary¶
Symbol | Operation |
---|---|
?: | Conditional ternary operator |
Assignments¶
Symbol | Operation |
---|---|
=, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, |=, ^= | Assignment Operators |