code: public DoubleBuffer put (double[] src, int off, int len) {
          int length = src.length;
          if (off < 0 || len < 0 || (long)off + (long)len > length) {
              throw new IndexOutOfBoundsException();
          }
  
          if (len > remaining()) {
              throw new BufferOverflowException();
          }
          for (int i = off; i < off + len; i++) {
              put(src[i]);
          }
          return this;
      }
docs: Writes doubles from the given double array, starting from the specified offset, to the
  current position and increases the position by the number of doubles written.
  
  @param src the source double array.
  @param off the offset of double array, must not be negative and not greater than {@code
  src.length}.
  @param len the number of doubles to write, must be no less than zero and not greater than
  {@code src.length - off}.
  @return this buffer.
  @exception BufferOverflowException if {@code remaining()} is less than {@code len}.
  @exception IndexOutOfBoundsException if either {@code off} or {@code len} is invalid.
  @exception ReadOnlyBufferException if no changes may be made to the contents of this buffer.