To answer your question at the end, you can use helper methods like the comment demonstrates, but somewhere, something must create a separate new array and copy all the items over.
Arrays are a fixed-sized construct--once you create one, you can't make it larger or smaller in-place. When you create an array, a section of Java's heap (which is a term for the area of memory where objects are stored) equal to the size of one item (in this case, a reference to a String) times the length of the array is reserved, and a reference to that memory is assigned to the variable you specify on the left hand side of the statement, as in String[] items = new String[10].
So to make items larger, you have to create a new array at the size you need, copy all the existing items over in order, and then reassign the variable that held the smaller array to the reference of the larger array, at that point held in temp. items = temp; simply copies the reference into items so items and temp refer to the same array. Then when the method ends, items remains while temp is removed.
Additionally, since there is now an array (which items previously referred to) that no variable refers to now, Java will take care of cleaning up that old array during its garbage collecting cycles. You don't have to worry about the items in your array going away, however, because you copied their references into the new array.