During the course of learning the new API; I undestood that the new java.util.CopyOnWriteArrayList creates a new copy of the underlying array for writing thereby disposing off synchronization. My question is how does this affect memory management in a situation where there are many concurrent writes to be done; I guess it is going to create this many copies of the arrays and have them stored in memory; this I think is akin to having too many objects in a servlet session. Please correct me if I am wrong.
I believe the CopyOnWriteArrayList only makes a copy to avoid stepping on an iterator. And once you make a copy, that iterator is safe from future writes. So the only scenario where lots of copies are made, is when you are getting lots of iterators while making lots of calls to mutable methods.