Just because there is no method for which the int[] descriptors are special. It will be printed by String#valueOf() instead, which implicitly calls Object#toString() . If Object#toString() not redefined in the specified object type, then the following will be printed (according to the specified API).
getClass().getName() + '@' + Integer.toHexString(hashCode())
The class int[] has the name [I
To achieve what you want, you need Arrays#toString() :
int[] arr = {4, 5, 6}; System.out.println(Arrays.toString(arr));
source share