The initial size of the ArrayList if the no-arg constructor is used quoting from the javadoc:
Constructs an empty list with an initial capacity of ten.
So it does not depend on anything, it doesn't depend on the RAM size either.
However there are some clever optimization going on in the background. If you check the Oracle implementation of ArrayList, you will see that in this case an initial empty internal array will be used so no array will be allocated until you actually add some elements to the list - in which case an array of size 10 will be created.
Once you attempt to add the 11th element, the internal array will be "resized". The new size is also implementation dependent, Oracle uses a 50% increment in the 1.7.0 version, so adding the 11th element will cause a new array to be allocated with the size of 15.
Going behind the scene
For the curious ones, you can use the following method to query the size of the internal array of the ArrayList (the solution uses reflection):
public static int getCap(ArrayList<?> list) throws Exception {
Field f = list.getClass().getDeclaredField("elementData");
f.setAccessible(true);
Object[] o = (Object[]) f.get(list);
return o.length;
}
Test results
ArrayList<String> list = new ArrayList<>();
System.out.println(getCap(list)); // Prints 0
list.add("");
System.out.println(getCap(list)); // Prints 10
for (int i = 1; i < 11; i++)
list.add("");
System.out.println(getCap(list)); // Prints 15
for (int i = 11; i < 16; i++)
list.add("");
System.out.println(getCap(list)); // Prints 22