Bonjour voici une portion de code qui s'exécute dans un thread.
Damier est une classe que j'ai créée et la méthode "evolue()" crée et renvoie un Damier. L'objet PanDam a pour membre un Damier et getPanDam() renvoie le damier de l'objet panDam, tandis que setPanDam(d) affecte au membre Damier de PanDam le damier d.
Au bout d'un moment java me dit OutOfMemoryError. Pourtant à chaque tour de boucle un Damier est créé et le damier précédent n'est plus référencé. Il devrait donc aller au ramasse-miette. Pourquoi alors ai-je un "OutOfMemory" ?
Merci beaucoup.
Voici le code de la méthode run() executée par mon thread :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 public void run() { Graphics g = fenprinc.getPanDam().getGraphics(); Damier courant, suivant; while(true){ courant = fenprinc.getPanDam().getDam(); suivant = courant.evolue(); fenprinc.getPanDam().SetDamier(suivant); fenprinc.getPanDam().paint(g); } }
Partager