This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
There are two important Laws that govern optimization:
1) Don't do it. 2) Don't do it yet.
Small "microoptimizations" like this are a waste of your valuable time to consider. If over a billion executions you could measure a 0.5% speedup on one JVM, you might measure a 0.5% slowdown on another. There are, in fact, good reasons to sometimes use a Collection variable rather than an ArrayList -- but they're design reasons, not performance reasons.
Now regarding the space: all Java object reference variables take up exactly the same amount of space. Please take a few minutes and read this.
In a sense, declaring the thing as a Collection is an optimization over declaring it as an ArrayList, but it's an optimization for programmer time, not processor time. To wit, declaring the thing as a Collection forces you to use only the interface of Collection on it, so if at some time in the future you decide to change the implementation to something other than ArrayList, you can do it by changing one line of code.