Download presentation
Presentation is loading. Please wait.
Published byBarnard Pope Modified over 9 years ago
1
OperatorstMyn1 Operators The sequence in which different operators in an expression are executed is determined by the precedence of the operators. Operators with a higher precedence are executed before operators with a lower precedence. In the following table, operators are in descending order of precedence, so those with the highest precedence are at the top. Operators within the same group in the table are of equal precedence.
2
OperatorstMyn2 The sequence of execution of operators with the same precedence in an expression is determined from their associativity. The associativity of an operator determines how it groups with its operands in an expression. Operators may be left-associative or right- associative.
3
OperatorstMyn3 All unary operators and all assignment operators are right associative. All other operators are left associative. With the throw operator (exception throwing) the associativity is not available.
4
OperatorstMyn4 Associativity is only needed when the operators in an expression have the same precedence. Usually + and - have the same precedence. Consider the expression 7-4+2. The result could be either (7-4)+2 = 5 or 7-(4+2) = 1. The former result corresponds to the case when + and - are left-associative. The latter result corresponds to the case when + and - are right- associative. Operators with the same precedence always have the same associativity. The operators +, -, * and / are left-associative.
5
OperatorstMyn5 A left-associative operator can be said to associate "to the left", and similarly a right-associative operator can be said to associate "to the right". To understand the intuition behind these names, consider again the expression 7-4+2. If + and - are left-associative then the middle operand (4) belongs to the operator on its left (hence the name "to the left"). If + and - are right- associative then the middle operand belongs to the operator on its right (hence the name "to the right").
6
OperatorstMyn6 A left-associative operator may also be said to have "left to right" associativity, and a right-associative operator may also be said to have "right to left" associativity. This is somewhat counter-intuitive considering the above paragraph. To understand the intuition behind these names consider the expression 1+2+3+4+5. If + is left-associative, the addition operations are carried out left to right, i.e. the result is (((1+2)+3)+4)+5. If + is right-associative, the addition operations are carried out right to left, i.e. the result is 1+(2+(3+(4+5))).
7
OperatorstMyn7 Operator Precedence postfixexpr++ expr-- unary++expr --expr +expr -expr ~ ! multiplicative* / % additive+ - shift > >>> relational = instanceof equality== != bitwise AND&
8
OperatorstMyn8 bitwise exclusive OR^ bitwise inclusive OR| logical AND&& logical OR|| ternary? : assignment= += -= *= /= %= &= ^= |= >= >>>=
9
OperatorstMyn9 An operator is a symbol that tells the compiler to perform a specific mathematical or logical manipulation. Java has four general classes of operators: arithmetic, bitwise, relational and logical.
10
OperatorstMyn10 Arithmetic operators OperatorMeaning +Addition -Subtraction *Multiplication /Division %Modulus ++Increment --Decrement
11
OperatorstMyn11 Relational and Logical Operators Relational refers to the relationships that values can have with one another, and logical refers to the ways in which true and false values can be connected together. Since the relational operators produce true or false results, they often work with the logical operators.
12
OperatorstMyn12 The relational operators OperatorMeaning ==Equal to !=Not equal to >Greater than <Less than >=Greater than or equal to <=Less than or equal to
13
OperatorstMyn13 The logical operators OperatorMeaning &AND |OR ^XOR(exclusive OR) ||Short-circuit OR &&Short-circuit AND !NOT
14
OperatorstMyn14 Java supplies special short-circuit versions of its AND and OR logical operators that can be used to produce more efficient code. In an AND operation, if the first operand is false, the outcome is false no matter what value the second operand has. In an OR operation, if the first operand is true, the outcome of the operation is true no matter what the value of the second operand. Thus, in these two cases there is no need to evaluate the second operand. By not evaluating the second operand, time is saved and more efficient code is produced.
15
OperatorstMyn15 The short-circuit AND operator is &&, and the short- circuit OR operator is ||. Their normal counterparts are & and |. The only difference between the normal and short- circuit versions is that the normal operands will always evaluate each operand, but short-circuit versions will evaluate the second operand only when necessary.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.