Demande dans la programmation

Fermé
Chrisnicolson Messages postés 3 Date d'inscription jeudi 19 février 2015 Statut Membre Dernière intervention 8 mai 2016 - 12 mars 2016 à 14:55
 Utilisateur anonyme - 12 mars 2016 à 16:42
bonjour!
je suis debutant en java.
j'ai solicite votre aide!
comment je pouvais supprime le contenu d'une variable deja dans un programme?
merci d'avence...

1 réponse

Utilisateur anonyme
12 mars 2016 à 15:05
Tu peux supprimer un objet en faisant

objet = null;

le garbage collector supprimera l'espace alloué à l'objet .
0
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 3 020
12 mars 2016 à 16:10
Bonjour,
le garbage collector supprimera l'espace alloué
... si il veut !

Le gc n'est généralement appelé que lorsqu'il n'y a plus de mémoire disponible, donc même s'il n'est plus utilisé, l'objet restera en mémoire au moins jusqu'au prochain gc.
Cependant il existe plusieurs générations d'objets dans la mémoire, quand le gc veut libérer de la mémoire il supprime d'abord les objets les plus récents (young generation), plus rapides à supprimer. Mais les objets les plus anciens (old generation), même s'ils ne sont plus utilisés, resteront en mémoire après un gc.
Il n'y a vraiment que lorsque le nettoyage de la young n'est plus suffisant pour libérer de la mémoire que la old est à son tour nettoyée, par un full gc. À ce moment là seulement on est sûr que tout les objets non utilisés sont supprimés.

Remarque :
objet = null
ne suffit pas pour garantir que l'objet n'est plus utilisé.
Si je fais
Object x = new Object(), y = x; x = null;
l'objet est encore utilisé par
y
, donc le gc ne le supprimera pas tant que
y
sera utilisé par le programme...
0
Utilisateur anonyme
12 mars 2016 à 16:42
Je prends note des explications, après si on veut contrôler la mémoire précisément au point d'être à une variable près autant se tourner vers du C. Attendons de voir si l'auteur précise ses besoins
0