It is true that generic collections perform better than non-generic collections for value types. (i.e. List vs. ArrayList).
But why is that, other than the boxing-unboxing step? Where are the value type objects stored once added to the collection? In non-generic collections, they'll be boxed and stored on heap, what is different in generics?