IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Execution de JVM


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut Execution de JVM
    Bonjour,
    lorsque le jvn instancie une classe qu'elle est l'ordre de l'exécution, les static méthode, les constructeurs, les constructeurs qu'elle hérite...

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    d'abord la jvm initialise la classe, ca signifie initialiser les champs statique et exécuter les blocs statiques. on fait toujours l'initialisation de classe du parent avant celui de l'enfant. Ensuite, si on a demandé une instance de la classe, on appelle le constructeur de la classe, dont la premier instruction est de déléguer au constructeur du parent qui délègue à sont parent et ainsi de suite jusque Object. Un fois Object fait, on remonte pregressivement pour exécuter le code de construction présent dans l'enfant, puis l'enfant de l'enfant etc jusqu'à remonter à l'appel initial.

  3. #3
    Membre éprouvé Avatar de anisj1m
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2006
    Messages
    1 067
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 067
    Par défaut
    merci beaucoup tchize_

    juste une petite question, est ce que les variables statiques sont initialiser avant d'exécuter les méthodes statique et est ce que les méthode statique sont exécuter dans leur ordre d'apparition dans la classe ?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,
    Les méthodes statiques sont exécutées quand tu les appelles, pas quand la classe est chargée... SI tu veux exćuter du code statique lorsque la classe est chargée par la JVM il te faut un bloc statique qui ressemble à ceci
    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public class MaClasse {
        private static Map<String String> maMap;
        static {
            maMap = new HashMap<String, String>();
            // je remplis ma map
            maMap.put("toto", "tata");
            ...
        }
     
        public static String get(String key) {
            return maMap.get(key);
        }
    }
    Ce code dans le bloc static statique sera exécuté au chargement, mais en aucune facon le code de get ne sera exécuté si tu ne l'appelles pas

  5. #5
    Membre confirmé
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juin 2008
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2008
    Messages : 30
    Par défaut
    J'en profite pour demander la différence entre un initializer static

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class MaClasse {
        private static Map<String String> maMap;
        static {
            maMap = new HashMap<String, String>();
            // je remplis ma map
            maMap.put("toto", "tata");
            ...
        }
     
        public static String get(String key) {
            return maMap.get(key);
        }
     
    }
    et un initializer par "défaut" (sans le static) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class MaClasse {
        private Map<String String> maMap;
        {
            maMap = new HashMap<String, String>();
            // je remplis ma map
            maMap.put("toto", "tata");
            ...
        }
     
        public String get(String key) {
            return maMap.get(key);
        }
     
    }

  6. #6
    Invité
    Invité(e)
    Par défaut
    Salut vantom,
    Et bien c'est la différence entre static et non static.
    C'est soit une variable de classe (unique partagée par toutes les instances de ta classe), soit une variable d'instance (une instance de maMap par instance de MaClasse) -> http://java.developpez.com/faq/java/...motsClesStatic

Discussions similaires

  1. Execution JVM sans installation sous Linux
    Par Jacques - 06 dans le forum Langage
    Réponses: 5
    Dernier message: 21/12/2009, 10h45
  2. Executer fichier .jar sans avoir jvm installé
    Par fafoula dans le forum Général Java
    Réponses: 2
    Dernier message: 17/09/2008, 13h23
  3. Jar executable - comment paramétrer la JVM?
    Par marcotop dans le forum Langage
    Réponses: 4
    Dernier message: 15/11/2006, 00h52
  4. Executer un jar dans le meme JVM
    Par obelix dans le forum Langage
    Réponses: 1
    Dernier message: 03/11/2006, 14h30
  5. [JVM]erreur d execution de java
    Par RR instinct dans le forum Langage
    Réponses: 1
    Dernier message: 27/10/2006, 12h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo