El primer constructor convierte el array de bytes en caracteres utilizando la codificación de caracteres por defecto. El segundo convierte el array de bytes en caracteres utilizado la codificación de caracteres especificada.String(byte[]) o String(byte[], String)
Aquí tienes una nueva versión de este ejemplo utilizando el constructor que utiliza la codificación de caracteres por defecto:
class ArrayCopyTest {
public static void main(String[] args) {
byte[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't', 'e', 'd' };
byte[] copyTo = new byte[7];
System.arraycopy(copyFrom, 2, copyTo, 0, 7);
System.out.println(new String(copyTo));
}
}
Para ver más detalles sobre éste y otros cambios en la clase String , Cambios en el JDK 1.1: La Clase String.