1) when gc finishes, the process is done
2) System.gc is the same as Runtime.gc
3) If you creates objects and put them into a list but never delete those objects, memory leak still happens.
4) Java is easy to write, but never be efficient. Because Java don't delete objects, so it is not efficient
5) because you don't delete, so memory will not be corrupted.