Vectors use a base array to store their elements. As you know, the capacity of the array is fixed. Once you said that the size of the array is 20, this will never change:
int[] array = new int [20];
For the third constructor, take, for example:
Vector v = new Vector(20, 10);
This means that although the vector is initially empty, it has a base array of size 20. After you add 20 elements to it, its capacity (the size of the base array) will increase to 30. The increase in the size of the base array is actually done by creating a new array with new size and copy all the elements from the old array to the new one. This is an expensive operation, so if you know that your vector will grow at a fast pace, it is useful to set a large increment value so that the redistribution of this array looks as rare as possible.
For the 4th constructor, you basically create a vector from any collection you want.
source share