Java Reference
In-Depth Information
One point you should note is that boolean variables differ from the other primitive
data types in that they cannot be cast to any other basic type, and the other primitive
types cannot be cast to boolean .
Operator Precedence
We have already introduced the idea of a pecking order for operators, which determines the sequence
in which they are executed in a statement. A simple arithmetic expression such as 3 + 4*5 results in the
value 23 because the multiply operation is executed first - it takes precedence over the addition
operation. We can now formalize the position by classifying all the operators present in Java. Each
operator in Java has a set priority or precedence in relation to the others, as shown in the following
table. Operators with a higher precedence are executed before those of a lower precedence. Precedence
is highest for operators in the top line in the table, down through to the operators in the bottom line,
which have the lowest precedence:
Operator Precedence Group
Associativity
(), [], . postfix ++, postfix --
left
unary +, unary -, prefix ++, prefix --, ~, !
right
(type), new
left
*, /, %
left
+, -
left
<<, >>, >>>
left
< ,<= , >, >=, instanceof
left
==, !=
left
&
left
^
left
|
left
&&
left
||
left
?:
left
=, +=, -=, *=, /=, %=, <<=, >>=, >>>=, &=, |=, ^=
right
Most of the operators that appear in the table you have not seen yet, but you will meet them all in
this topic eventually, and it is handy to have them all gathered together in a single precedence table
that you can refer to when necessary.
By definition, the postfix ++ operator is executed after the other operators in the expression in which it
appears, despite its high precedence. In this case, precedence determines what it applies to, in other
words, the postfix ++ only acts on the variable that appears immediately before it. For this reason the
expression oranges+++apples that we saw earlier is evaluated as ( oranges++ ) + apples rather
than oranges + ( ++apples ).
Search WWH ::




Custom Search