Java garbage collection learning