Is there library that can make deep copy?
ex) normal object, array, list, inputstream etc.
Look for serialization. Java supports it out of the box, but you can also try Hessian, Kryo...
Here's an introduction to Java serialization: http://java.sun.com/developer/technicalArticles/Programming/serialization/
And here's a benchmark done by the Kryo folks: http://code.google.com/p/thrift-protobuf-compare/wiki/Benchmarking (list of 20 serialization libs)