It is a bit of overkill to use ArrayList for everything. If you know in advance the size and if it is fixed, just use arrays, they will use less memory. Array lists of primitives (int, float, etc.) also have a performance penalty. And the syntax is a bit less friendly.
Otherwise, indeed, an array list is actually just an oversized array, which is grown (and reference to data is copied) when the capacity is reached, so performance isn't bad.