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

Langage Java Discussion :

import ou pas import ?


Sujet :

Langage Java

  1. #1
    Invité
    Invité(e)
    Par défaut import ou pas import ?
    Bonjour,

    Voici une petite question existentielle que je me pose depuis pas mal de temps.

    Tout le monde sait que l'on peut faire référence à une classe :
    • soit en l'important au début (ex : import java.awt.Color),
    • soit en écrivant à chaque fois son chemin complet (ex : setColor(java.awt.Color.BLUE)).


    Si l'on met de côté le fait que l'import simplifie grandement le codage pour le développeur,
    y a-t'il une quelconque différence entre ces deux syntaxes en termes de performance ?
    (Notamment lorsqu'une classe n'est utilisée qu'une ou deux fois.)


    Merci d'avance pour vos réponses !
    Axel

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    voila deux classes compilées puis décompilées, une avec import, l'autre avec chemin complet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    // Compiled from Test1.java (version 1.6 : 50.0, super bit)
    public class test.Test1 {
     
      // Field descriptor #6 Ljava/awt/Color;
      public java.awt.Color color;
     
      // Method descriptor #8 ()V
      // Stack: 1, Locals: 1
      public Test1();
        0  aload_0 [this]
        1  invokespecial java.lang.Object() [10]
        4  return
          Line numbers:
            [pc: 0, line: 4]
          Local variable table:
            [pc: 0, pc: 5] local: this index: 0 type: test.Test1
     
      // Method descriptor #17 (Ljava/awt/Color;)V
      // Stack: 2, Locals: 2
      public void test(java.awt.Color color);
        0  aload_0 [this]
        1  aload_1 [color]
        2  putfield test.Test1.color : java.awt.Color [18]
        5  return
          Line numbers:
            [pc: 0, line: 9]
            [pc: 5, line: 10]
          Local variable table:
            [pc: 0, pc: 6] local: this index: 0 type: test.Test1
            [pc: 0, pc: 6] local: color index: 1 type: java.awt.Color
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    // Compiled from Test2.java (version 1.6 : 50.0, super bit)
    public class test.Test2 {
     
      // Field descriptor #6 Ljava/awt/Color;
      public java.awt.Color color;
     
      // Method descriptor #8 ()V
      // Stack: 1, Locals: 1
      public Test2();
        0  aload_0 [this]
        1  invokespecial java.lang.Object() [10]
        4  return
          Line numbers:
            [pc: 0, line: 5]
          Local variable table:
            [pc: 0, pc: 5] local: this index: 0 type: test.Test2
     
      // Method descriptor #17 (Ljava/awt/Color;)V
      // Stack: 2, Locals: 2
      public void test(java.awt.Color color);
        0  aload_0 [this]
        1  aload_1 [color]
        2  putfield test.Test2.color : java.awt.Color [18]
        5  return
          Line numbers:
            [pc: 0, line: 10]
            [pc: 5, line: 11]
          Local variable table:
            [pc: 0, pc: 6] local: this index: 0 type: test.Test2
            [pc: 0, pc: 6] local: color index: 1 type: java.awt.Color
    }
    Résultat sans appel: aucune différence sur le code compilé, le .class contient d'office les chemin complet :p

    (oui j'aurais pu sortir la spec java pour le dire, mais je suis un gros paresseux)

  3. #3
    Invité
    Invité(e)
    Par défaut
    Ah ben comme ça au moins c'est clair !
    Donc en fait la seule chose qui peut changer, c'est le temps de compilation.

    Merci pour l'info ! !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 01/12/2014, 09h41
  2. Eclipe ne trouve pas : import java.servlet.ServletException
    Par khalidlyon dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 12/06/2008, 17h28
  3. [phpMyAdmin] Saisie manuelle tables = OK, importation fichier = pas OK
    Par syl2042 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 28/01/2007, 16h41
  4. Je n'arrive pas à importer un fichier .sql
    Par ted-bis dans le forum Débuter
    Réponses: 6
    Dernier message: 03/01/2007, 07h28

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