Java operator precedence is how Java determines which operator to evaluate first.

In this chart, operator precedence is displayed from highest precedence to lowest precedence.

PriorityOperatorOperationOrder of Evaluation
1 [ ] Array index Left to Right
() Method call
. Member access
2 ++ Prefix or postfix increment Right to Left
-- Prefix or postfix decrement
+ - Unary plus, minus
~ Bitwise NOT
! Boolean (logical) NOT
(type) Type cast
new Object creation
3 * / % Multiplication, division, remainder Left to Right
4 + - Addition, subtraction Left to Right
+ String concatenation
5 << Signed bit shift left to right Left to Right
>> Signed bit shift right to left
>>> Unsigned bit shift right to left
6 < <= Less than, less than or equal to Left to Right
> >= Greater than, greater than or equal to
instanceof Reference test
7 == Equal to Left to Right
!= Not equal to
8 & Bitwise AND Left to Right
& Boolean (logical) AND
9 ^ Bitwise XOR Left to Right
^ Boolean (logical) XOR
10 | Bitwise OR Left to Right
| Boolean (logical) OR
11 && Boolean (logical) AND Left to Right
12 || Boolean (logical) OR Left to Right
13 ? : Conditional Right to Left
14 = Assignment Right to Left
*= /= += -= %=
<<= >>= >>>=
&= ^= |=
Combinated assignment
(operation and assignment)

Notes:

  • Expressions inside parentheses are evaluated first
  • Nested parentheses are evaluated from the innermost parentheses to the outermost parenthesis.
  • Operators in the same row in the chart have equal precedence.