It is calling toString()
on the object. The object is an array that doesn't override the toString()
method coming from Object
. Object's implementation:
getClass().getName() + '@' + Integer.toHexString(hashCode())
The [C
means array ([
) of char (C
). The Javadocs for Class#getName()
explain it in more detail.
The 4367e003
is the object's hash code, which is likely to be the memory address.
As much as is reasonably practical, the hashCode method defined by
class Object does return distinct integers for distinct objects. (This
is typically implemented by converting the internal address of the
object into an integer, but this implementation technique is not
required by the JavaTM programming language.)
When you don't call toString()
, you are actually calling the println
method that takes a char[]
, which knows how to print out the chars.