This week's giveaway is in the EJB and other Java EE Technologies forum. We're giving away four copies of EJB 3 in Action and have Debu Panda, Reza Rahman, Ryan Cuprak, and Michael Remijan on-line! See this thread for details.

class Test { public static void main(String[ ] args) { int[] a = { 1, 2, 3, 4 }; int[] b = { 2, 3, 1, 0 }; System.out.println( a [ (a = b)[3] ] ); } } What will it print when compiled and run ?

it seems that since a=b assignment occurs, it make referecnce a point to array reference b which is similar to in numerical sense a[any index]=b[any index] and a result is stored in temporary variable say t where t=(a=b)[3] t =a[3]//this a is pointing towards b t=0 so t is 0

it might occur that a[] value are modified but it is not so,

and the resulting statement is

which will translate to

which will print value of a[0]

which is 1 but this inner a is referencing to initial b so a's current value are a[]={2,3,1,0} which is same as b

a[3] has value of b[3] that is 0 stored in it so code reduces from a[a[3]] [code]a[3]//replacing value of a[][]