begin process at 2010 03 18 23:55:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

JAVA / J2EE / J2ME

 > 

Divers

 > 

Général

 > 

méthode finalize


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

méthode finalize

mardi 17 octobre 2006 à 11:47:20 | méthode finalize

ludoW21

bonjour, je travaille sous Eclipse. Je n'arrive pas à ce que ma méthode finalize soit appelée... J'ai fait un simple test, et voici le code source... Quelqu'un peut-il m'aider?

package xxx;

public class Test
{
     private int zero;
     private boolean condition;

     public static void main(String args[]){
      Test test = new Test();
     }
    
     public Test()
     {
          zero = 0;
          condition = false;

          System.out.println("L'objet a été créé");
     }
   
     public void finalize() throws Throwable
     {
          System.out.println("Objet nettoyé de la mémoire"); 
     }
}

Affichage à l'écran :

L'objet a été créé

mardi 17 octobre 2006 à 12:11:09 | Re : méthode finalize

indiana_jules

Salut
de mémoire, il me semble que c'est le garbage collector qui appelle cette méthode afin de "finalisé" un objet. Néanmoins, de mémoire aussi, il semble que cette méthode marche moyennement et il serait même déconseillé de l'utiliser !

Ce qui fait qu'il est plus sage de faire un tonObjet = null; et attendre que le garbage collector fasse son travail (ou el forcer en faisant System.gc();).

Voilà


[#Tout le monde a des idées : la preuve, c'est qu'il y en a de mauvaises]
[#Je ne comprends pas tout, mais je parle de tout : c'est ce qui compte]
mardi 17 octobre 2006 à 12:27:46 | Re : méthode finalize

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

pour corriger tout le monde ce n'est pas le garbage collector qui appel la méthode finalize d'un objet mais le finalizer exemple :

Runtime.getRuntime().runFinalization();


voici un petit exemple pour clear la memoire de tes objets:
public void free() {
    Runtime run = Runtime.getRuntime();
    long usedMem1 = usedMemory(), usedMem2 = Long.MAX_VALUE;
    for (int i = 0; (usedMem1 < usedMem2) && (i < 500); ++i) {
        run.runFinalization();
        run.gc();
        Thread.yield();
        usedMem2 = usedMem1;
        usedMem1 = usedMemory();
    }
}


------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
mardi 17 octobre 2006 à 22:07:02 | Re : méthode finalize

Twinuts

Membre Club Administrateur CodeS-SourceS
Salut,

j'ai oublié la methode usedMemory
public long usedMemory() {
    Runtime run = Runtime.getRuntime();
    return run.totalMemory() - run.freeMemory();
}

et pour un code compet

private Runtime RUN = Runtime.getRuntime();

public void free() {
    long usedMem1 = usedMemory(), usedMem2 = Long.MAX_VALUE;
    for (int i = 0; (usedMem1 < usedMem2) && (i < 500); ++i) {
        RUN.runFinalization();
        RUN.gc();
        Thread.yield();
        usedMem2 = usedMem1;
        usedMem1 = usedMemory();
    }
}
public long usedMemory() {
    return RUN.totalMemory() - RUN.freeMemory();
}


------------------------------------
"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

WORA
vendredi 27 octobre 2006 à 20:30:02 | Re : méthode finalize

rom1v

Ca sert à rien d'essayer de supprimer les objets de la mémoire... Si ton objet n'est plus référencé, le garbage collector le supprimera tôt ou tard, au moment "optimal"...


Cette discussion est classée dans : public, objet, test, méthode, finalize


Répondre à ce message

Sujets en rapport avec ce message

applet problème de class interne [ par neo1260 ] Bonjour, j'ai une applet avec une class print et une class interne qui fait du FTP, quand je compil il n'y a pas d'erreur et quand je la charge dans m probleme à l'execution [ par damiendumas ] Bonjour !Voila ma config :- Win 98 SE- j2sdk1.4.1Voila mon fichier source (test.java) pour tester l'installation :public class test{ public static voi traitement de fichiers dans méthode public boolean action [ par deltiti ] Bonjour, Je réalise actuellement un projet en java et je rencontre une petite difficulté. En effet, à l'intérieur d'une classe public boolean action ( atteindre un objet à partir d'une méthode dans une autre class [ par supers03 ] Tout d'abord Bonjour à tousComme vous pourrez le voir je suis débutant en Java et je n'ai pas encore saisi toute les subtilité des objet. Je m'expliqu Demande d'aide : Programmation évenementielle sans interface graphique [ par saka vain ] Bonjour, on me demande de faire un projet avec gestion des évenements, mais sans interface grafique. Je dois donc créer un objet qui génère l'évenem Utiliser la méthode d'une autre classe... [ par axi_axi_axi ] Bonjour,j'aimerais en effet utiliser une méthode de ma Classe2 dans ma Classe3.Ce que je fais d'habitude:class Classe2 extends JDialog {public void Cl Référence d'objet : grosse colle [ par jasonred2 ] Bonjour à tous, il y'a une petite question qui m'est venu à l'esprit et j'avoue que je n'ai pas trouvé de réponse : Losque l'on crée un objet via un Classe abstraite/sous classe: prb de constructeur [ par Sebastien_teisseire ] J'ai donc la classe abstraite suivante: public abstract class AbstractTest extends JFrame{ protected JPanel pane = new JPanel(); public Abst AffineTransform [ par qhhu ] Bonjour !J'ai un problème avec AffineTronsform.Je voudrais qu'un objet Ellipse2D.Float tourne autour d'un point donné.Chaque 10 dixièmes de secondes, Problème Base de Données [ par Maiku ] SalutJe viens de commencer a étudier le java, et suit en train de faire une bibliothèque de classe , pour l'instant j'y ai mis une classe pour manipul


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales