I think Vector constructor that allows you to specify the initial capacity and capacity increment is for performance purposes. If you know you are going to add lots of elements, you can specify a large initial capacity so the underlying JVM doesn't have to spend lots of time resizing the growing Vector object (this is my theory anyway).
The reason why the size is zero after you have constructed the Vector object using an initial capacity of 100 is because the size() method gives you a count of the number of elements in the Vector. Since you haven't actually added any elements, size is zero. You have only created a Vector object that is capable of storing 100 elements before the JVM needs to resize the object to fit more elements.
The initial capacity, which refers to the number of elements the Vector can hold before it has to grow. If a Vector requires additional capacity, it grows by a capacity increment that you specify. If you do not specify a capacity increment, the system will double the size of a Vector each time additional capacity is needed.
Size basically Returns the number of components in this vector.