The second argument allows you to specify an offset into the array at which to start storing the data. In general in Java it is good practice to do this, it basically makes up for the lack of pointers in Java compared to C and makes some operations easier/more efficient. Think of for example having 3 single axis accelerometers that you wish to store the values in locations 0, 1, 2 of an array to simulate a 3 axis device. The offset allows for this without having to copy data about.