[[painless-operators]] === 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: [cols="<6,<3,^3,^2,^4"] |==== | *Operator* | *Category* | *Symbol(s)* | *Precedence* | *Associativity* | <<precedence-operator, Precedence>> | <<painless-operators-general, General>> | () | 0 | left -> right | <<method-call-operator, Method Call>> | <<painless-operators-reference, Reference>> | . () | 1 | left -> right | <<field-access-operator, Field Access>> | <<painless-operators-reference, Reference>> | . | 1 | left -> right | <<null-safe-operator, Null Safe>> | <<painless-operators-reference, Reference>> | ?. | 1 | left -> right | <<function-call-operator, Function Call>> | <<painless-operators-general, General>> | () | 1 | left -> right | <<array-initialization-operator, Array Initialization>> | <<painless-operators-array, Array>> | [] {} | 1 | left -> right | <<array-access-operator, Array Access>> | <<painless-operators-array, Array>> | [] | 1 | left -> right | <<array-length-operator, Array Length>> | <<painless-operators-array, Array>> | . | 1 | left -> right | <<list-initialization-operator, List Initialization>> | <<painless-operators-reference, Reference>> | [] | 1 | left -> right | <<list-access-operator, List Access>> | <<painless-operators-reference, Reference>> | [] | 1 | left -> right | <<map-initialization-operator, Map Initialization>> | <<painless-operators-reference, Reference>> | [:] | 1 | left -> right | <<map-access-operator, Map Access>> | <<painless-operators-reference, Reference>> | [] | 1 | left -> right | <<post-increment-operator, Post Increment>> | <<painless-operators-numeric, Numeric>> | ++ | 1 | left -> right | <<post-decrement-operator, Post Decrement>> | <<painless-operators-numeric, Numeric>> | -- | 1 | left -> right | <<pre-increment-operator, Pre Increment>> | <<painless-operators-numeric, Numeric>> | ++ | 2 | right -> left | <<pre-decrement-operator, Pre Decrement>> | <<painless-operators-numeric, Numeric>> | -- | 2 | right -> left | <<unary-positive-operator, Unary Positive>> | <<painless-operators-numeric, Numeric>> | + | 2 | right -> left | <<unary-negative-operator, Unary Negative>> | <<painless-operators-numeric, Numeric>> | - | 2 | right -> left | <<boolean-not-operator, Boolean Not>> | <<painless-operators-boolean, Boolean>> | ! | 2 | right -> left | <<bitwise-not-operator, Bitwise Not>> | <<painless-operators-numeric, Numeric>> | ~ | 2 | right -> left | <<cast-operator, Cast>> | <<painless-operators-general, General>> | () | 3 | right -> left | <<new-instance-operator, New Instance>> | <<painless-operators-reference, Reference>> | new () | 3 | right -> left | <<new-array-operator, New Array>> | <<painless-operators-array, Array>> | new [] | 3 | right -> left | <<multiplication-operator, Multiplication>> | <<painless-operators-numeric, Numeric>> | * | 4 | left -> right | <<division-operator, Division>> | <<painless-operators-numeric, Numeric>> | / | 4 | left -> right | <<remainder-operator, Remainder>> | <<painless-operators-numeric, Numeric>> | % | 4 | left -> right | <<string-concatenation-operator, String Concatenation>> | <<painless-operators-reference, Reference>> | + | 5 | left -> right | <<addition-operator, Addition>> | <<painless-operators-numeric, Numeric>> | + | 5 | left -> right | <<subtraction-operator, Subtraction>> | <<painless-operators-numeric, Numeric>> | - | 5 | left -> right | <<left-shift-operator, Left Shift>> | <<painless-operators-numeric, Numeric>> | << | 6 | left -> right | <<right-shift-operator, Right Shift>> | <<painless-operators-numeric, Numeric>> | >> | 6 | left -> right | <<unsigned-right-shift-operator, Unsigned Right Shift>> | <<painless-operators-numeric, Numeric>> | >>> | 6 | left -> right | <<greater-than-operator, Greater Than>> | <<painless-operators-boolean, Boolean>> | > | 7 | left -> right | <<greater-than-or-equal-operator, Greater Than Or Equal>> | <<painless-operators-boolean, Boolean>> | >= | 7 | left -> right | <<less-than-operator, Less Than>> | <<painless-operators-boolean, Boolean>> | < | 7 | left -> right | <<less-than-or-equal-operator, Less Than Or Equal>> | <<painless-operators-boolean, Boolean>> | <= | 7 | left -> right | <<instanceof-operator, Instanceof>> | <<painless-operators-boolean, Boolean>> | instanceof | 8 | left -> right | <<equality-equals-operator, Equality Equals>> | <<painless-operators-boolean, Boolean>> | == | 9 | left -> right | <<equality-not-equals-operator, Equality Not Equals>> | <<painless-operators-boolean, Boolean>> | != | 9 | left -> right | <<identity-equals-operator, Identity Equals>> | <<painless-operators-boolean, Boolean>> | === | 9 | left -> right | <<identity-not-equals-operator, Identity Not Equals>> | <<painless-operators-boolean, Boolean>> | !== | 9 | left -> right | <<bitwise-and-operator, Bitwise And>> | <<painless-operators-numeric, Numeric>> | & | 10 | left -> right | <<boolean-xor-operator, Boolean Xor>> | <<painless-operators-boolean, Boolean>> | ^ | 11 | left -> right | <<bitwise-xor-operator, Bitwise Xor>> | <<painless-operators-numeric, Numeric>> | ^ | 11 | left -> right | <<bitwise-or-operator, Bitwise Or>> | <<painless-operators-numeric, Numeric>> | \| | 12 | left -> right | <<boolean-and-operator, Boolean And>> | <<painless-operators-boolean, Boolean>> | && | 13 | left -> right | <<boolean-or-operator, Boolean Or>> | <<painless-operators-boolean, Boolean>> | \|\| | 14 | left -> right | <<conditional-operator, Conditional>> | <<painless-operators-general, General>> | ? : | 15 | right -> left | <<elvis-operator, Elvis>> | <<painless-operators-general, General>> | ?: | 16 | right -> left | <<assignment-operator, Assignment>> | <<painless-operators-general, General>> | = | 17 | right -> left | <<compound-assignment-operator, Compound Assignment>> | <<painless-operators-general, General>> | $= | 17 | right -> left |====