println() method which is a memebr of PrintStream class can take both char array as well as String object as a parameter. So whether you use char array (in this case copyTo) or String object the output is same. The only difference is the type of parameter passed to the println method.
Joined: Jan 15, 2007
What was in my mind was what made anybody without straightly using copyTo in the println(), create a String object.This was from the Sun java Tutorials.
Now work out what that Java Tutorial method would print if you didn't create the new String! Try it with System.out.println(new String(copyTo)); and System.out.println(copyTo); The idea of that example is to show you how the arraycopy method works, so they miss out the bit about new String!
Joined: Oct 13, 2005
If one of my links doesn't work, copy and paste this:
Actually, it would print the same thing. There's an overloaded version of println() that accepts a char argument and prints the characters as if they were a String.
The reason the code makes a copy of some -- not all! -- of the characters is because it is demonstrating how the System.arraycopy() method is used.
The reason that the programmer creates the new String is harder to imagine. The overloaded println(char) has been present since the very first JDK release. Perhaps the coder was simply new to Java? Nobody's perfect, even Sun Micro employees.