will the
scjp 1.4 exam
test me on these changes?
what does the following statement means?
Previous versions of javac used to discard the left-hand-side of a qualification expression when the right-hand-side is a constant or a static member. That is not correct according to the JLS. javac now correctly evaluates the LHS. Specifically, in an expression such as
x.y.z
where y is an instance field of x and z is a static field of y, the compiler used to omit the required null pointer check on x.
In addition, the null check is done for instance constants. For example, in the expression
x.y
where y is an instance constant member of x, we now check x for null and emit a null pointer exception when it is null.