[Résolu] gestion mémoire en java

gestion mémoire en java [Résolu] - Java - Programmation

Marsh Posté le 29-04-2008 à 15:48:56    

Bonjour à tous,
 
Je programme depuis peu en java et en fait j'aimerai savoir comment on fait pour liberer de la place en mémoire.
En effet, j'ai un tableau que je crée de grande taille mais cependant dans la suite je n'en ai plus besoin et j'aurais voulu savoir comment je devais faire pour libérer de la place mémoire en le supprimant.
Est ce que la méthode qui consiste à écrire tableau = null; suffit.
Ou bien faut'il utiliser un ramasse miette comme j'ai vu sur certain site?
 
Merci pour votre aide


Message édité par jeanne2 le 01-05-2008 à 17:14:01
Reply

Marsh Posté le 29-04-2008 à 15:48:56   

Reply

Marsh Posté le 29-04-2008 à 15:50:22    

Y a un garbage collector. Si ton tableau n'est plus référencé nul part, la mémoire qu'il occupe sera automatiquement libérée au moment de son passage.

Reply

Marsh Posté le 29-04-2008 à 16:11:16    

mais celà signifie quoi qu'il n'est plus référencé nulle part. Et le garbage collector c'est à moi de le passer ou alors c'est automatique en java. D'autre part est ce qu'on ne va pas avoir des problèmes de fragmentation ?
 
Merci pour le temps qui vous passez à répondre à mes questions

Reply

Marsh Posté le 29-04-2008 à 16:19:24    

jeanne2 a écrit :

mais celà signifie quoi qu'il n'est plus référencé nulle part.


 

Code :
  1. String s = "bonjour"; // "bonjour" est référencée par s
  2. String s2 = s; // "bonjour" est référencée par s et par s2
  3. s = "salut"; // "bonjour" n'est plus référencée que par s2
  4. s2 = "aurevoir"; // "bonjour" n'est plus référencée, le GC la nettoiera donc à son prochain passage


 

Citation :


Et le garbage collector c'est à moi de le passer ou alors c'est automatique en java.


 
C'est automatique.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 29-04-2008 à 16:23:09    

D'accord merci beaucoup
Cependant si je crée un tableau d'entiers que j'appelle tab.
Je remplis tab à l'aide d'un algorithme et puis c'est tout. Ensuite je recré un autre tableau que j'appelle tab2 mais je ne touche plus à tab, il ne va pas être supprimé car il sera encore référencé. Dans ce cas comment dois je faire pour le supprimer ?
La réponse à ma question est peut être au dessus mais je ne vois pas dans ce cas comment je dois faire.
 
Merci

Reply

Marsh Posté le 29-04-2008 à 16:25:05    

Reply

Marsh Posté le 29-04-2008 à 16:25:53    

merci beaucoup

Reply

Marsh Posté le 29-04-2008 à 16:25:57    

tab = null;  
Edit : [:benou_grilled]


Message édité par dwogsi le 29-04-2008 à 16:26:23

---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed