From the Java 6 JLS:
At run time, the first operand expression of the conditional
expression is evaluated first; if necessary, unboxing conversion is
performed on the result; the resulting boolean value is then used to
choose either the second or the third operand expression:
- If the value of the first operand is true, then the second operand expression is chosen.
- If the value of the first operand is false, then the third operand expression is chosen.
The chosen operand expression is then evaluated and the resulting
value is converted to the type of the conditional expression as
determined by the rules stated above. This conversion may include
boxing (ยง5.1.7) or unboxing conversion. The operand expression not
chosen is not evaluated for that particular evaluation of the
conditional expression.
Similar wording also appears in JLS editions going back to 1.0. The behavior didn’t change in Java 7; the study guide is just poorly worded.