He estado buscando y creo que el problema viene dado porque cuando hago:
Código:
Cartas carta1 = new Cartas();
Me reserva un nuevo espacio en la memoria, quando lo que quiero es que me la sobreescriba.
Para solucionarlo primero pense en detectar si el objeto ya estaba creado, y en ese caso modificarlo.
Código:
if(carta1 == null){
carta1 = new Cartas();
}else{
carta1.Carta();
}
El metodo Carta, realiza lo mismo que el constructor, pero asi edito el ya existente y me ahorro comer mas memoria.
No funciona

Sigo buscando, y saco la conclusion de que tengo dos opciones
- Evitar que reserve mas espacio en la memoria (hasta ahora fracaso u.u)
- Conseguir eliminar ese espacio que ocupa antes de ocupar uno nuevo.
Con lo segundo he intentado poner los objetos en null y utilitzar metodos para "llamar" al GC y no ha habido manera.
A ver si alguien puede darme algo de luz >_<