Rules:

- Expressions inside parentheses are evaluated first
- Nested parentheses are evaluated from the innermost to the outermost parentheses.
- Operators higher in the chart have higher precedence
- Operators in the same row in the chart have equal precedence. Their associativity (e.g. L to R) determines tie breakers.
- Parentheses may be used control order of evaluation

Description |
Operators |
Associativity |

parentheses, array subscript, member selection | () [] . | L to R |

unary post-increment and post-decrement | `expr++ expr--` |
R to L |

other unary operators: pre-increment, pre-decrement, plus, minus, logical negation, bitwise complement, type cast | `++` |
R to L |

multiplication, division, mod | `* / % ` |
L to R |

addition, subtraction | `+ - ` |
L to R |

bitwise shift operators: left, right with sign extension, right with 0 extension | `<< >> >>> ` |
L to R |

relational less/greater than operators, instanceof for type comparison | `< <= > >= instanceof ` |
L to R |

relational equality operators | `== != ` |
L to R |

bitwise AND | `&` |
L to R |

bitwise exclusive OR | `^` |
L to R |

bitwise inclusive OR | `|` |
L to R |

logical AND | `&&` |
L to R |

logical OR | `||` |
L to R |

conditional | `? :` |
R to L |

assignment | `= += -= *= /= %= &= ^= |= <<= >>= >>>=` |
R to L |