Operators
An operator is the most basic action that can be taken to evaluate values in a script. An expression is one-to-many consecutive operations. Precedence is the order in which an operator will be evaluated relative to another operator. Associativity is the direction within an expression in which a specific operator is evaluated. The following table lists all available operators:
Operator | Category | Symbol(s) | Precedence | Associativity |
Precedence | General | () | 0 | left → right |
Method Call | Reference | . () | 1 | left → right |
Field Access | Reference | . | 1 | left → right |
Null Safe | Reference | ?. | 1 | left → right |
Function Call | General | () | 1 | left → right |
Array Initialization | Array | [] {} | 1 | left → right |
Array Access | Array | [] | 1 | left → right |
Array Length | Array | . | 1 | left → right |
List Initialization | Reference | [] | 1 | left → right |
List Access | Reference | [] | 1 | left → right |
Map Initialization | Reference | [:] | 1 | left → right |
Map Access | Reference | [] | 1 | left → right |
Post Increment | Numeric | ++ | 1 | left → right |
Post Decrement | Numeric | — | 1 | left → right |
Pre Increment | Numeric | ++ | 2 | right → left |
Pre Decrement | Numeric | — | 2 | right → left |
Unary Positive | Numeric | + | 2 | right → left |
Unary Negative | Numeric | - | 2 | right → left |
Boolean Not | Boolean | ! | 2 | right → left |
Bitwise Not | Numeric | ~ | 2 | right → left |
Cast | General | () | 3 | right → left |
New Instance | Reference | new () | 3 | right → left |
New Array | Array | new [] | 3 | right → left |
Multiplication | Numeric | * | 4 | left → right |
Division | Numeric | / | 4 | left → right |
Remainder | Numeric | % | 4 | left → right |
String Concatenation | Reference | + | 5 | left → right |
Addition | Numeric | + | 5 | left → right |
Subtraction | Numeric | - | 5 | left → right |
Left Shift | Numeric | << | 6 | left → right |
Right Shift | Numeric | >> | 6 | left → right |
Unsigned Right Shift | Numeric | >>> | 6 | left → right |
Greater Than | Boolean | > | 7 | left → right |
Greater Than Or Equal | Boolean | >= | 7 | left → right |
Less Than | Boolean | < | 7 | left → right |
Less Than Or Equal | Boolean | <= | 7 | left → right |
Instanceof | Boolean | instanceof | 8 | left → right |
Equality Equals | Boolean | == | 9 | left → right |
Equality Not Equals | Boolean | != | 9 | left → right |
Identity Equals | Boolean | === | 9 | left → right |
Identity Not Equals | Boolean | !== | 9 | left → right |
Bitwise And | Numeric | & | 10 | left → right |
Boolean Xor | Boolean | ^ | 11 | left → right |
Bitwise Xor | Numeric | ^ | 11 | left → right |
Bitwise Or | Numeric | | | 12 | left → right |
Boolean And | Boolean | && | 13 | left → right |
Boolean Or | Boolean | || | 14 | left → right |
Conditional | General | ? : | 15 | right → left |
Elvis | General | ?: | 16 | right → left |
Assignment | General | = | 17 | right → left |
Compound Assignment | General | $= | 17 | right → left |