Srikanth, It gives compiler error because of incorrect use of System.ou.println. If it is a typing error and it should be Syste.out.println, it will output the memory address of the array object only. It does not print elements of the array object because it does not access array elements in this code. -Suman
I don't know their reasoning, but the class name for a long is [J.
The reason that SOP acts differently with a long, int, float, double, etc. than with a char is that there is a method named println in PrintStream which matches char, but the only println method that the other arrays match is the one that accepts Object.