code: public static byte[] addAll(byte[] array1, byte[] array2) {
          if (array1 == null) {
              return clone(array2);
          } else if (array2 == null) {
              return clone(array1);
          }
          byte[] joinedArray = new byte[array1.length + array2.length];
          System.arraycopy(array1, 0, joinedArray, 0, array1.length);
          System.arraycopy(array2, 0, joinedArray, array1.length, array2.length);
          return joinedArray;
      }
docs: <p>Adds all the elements of the given arrays into a new array.</p>
  <p>The new array contains all of the element of <code>array1</code> followed
  by all of the elements <code>array2</code>. When an array is returned, it is always
  a new array.</p>
  
  <pre>
  ArrayUtils.addAll(array1, null)   = cloned copy of array1
  ArrayUtils.addAll(null, array2)   = cloned copy of array2
  ArrayUtils.addAll([], [])         = []
  </pre>
  
  @param array1  the first array whose elements are added to the new array.
  @param array2  the second array whose elements are added to the new array.
  @return The new byte[] array.
  @since 2.1