Hola Manuel C
Hay una opción de la máquina virtual HotSpot (desde JDK1.3) que permite que la recolección de basura sea menos traumatica: la recoleccion de basura incremental.:
java -Xincgc TuClase
Segun la documentación esto tiene el precio de un 10% menos de velocidad
Te aviso de que Swing genera basura a lo bestia como parte de su propio comportamiento, lo cual no tiene consecuencias de cara a sus
funciones de GUI (por eso se permiten esos lujos sus diseñadores). Por ese motivo emplear Swing para animaciones no es lo mas adecuado.
Si no estas desarrollano un GUI (ni botones ni historias de esas) , es decir, que si sólo tienes una ventana donde se anima algo te sugiero
que uses AWT sin Swing con lo que podras controlar mejor la creacion
de basura. Eso sí: deberas implementar tu el doble buffer, lo cual es muy facil por otra parte. Ese es el enfoque que uso yo, y siendo meticuloso se puede conseguir que no se genere NINGUNA basura
en la animacion, con lo cual no tendras que recurrir a opciones no standar de la JVM como la que te comente antes