Le "nouveau" GC de hotspot (G1-GC), inclut dans le jdk6/7, est censé abandonner le principe du Mark-Sweep qui induit tous les problèmes dont tu parles.