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 :

Où déclarer ma variable ?


Sujet :

Langage Java

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 152
    Points : 94
    Points
    94
    Par défaut Où déclarer ma variable ?
    Petite question qui pourra peut-être sembler bête à quelques uns, mais cela change t'il quelque chose question mémoire ou rapidité de faire çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    String str;
     
    for (int i=0; i<10000; i++) {
       str = "ma chaîne vaut" + i.toString();
    }
    Ou çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (int i=0; i<10000; i++) {
       String str = "ma chaîne vaut" + i.toString();
    }
    Dans la deuxième solution, je redéclare à chaque fois ma String...

    Merci d'avance pour vos réponses.
    </aliasjcdenton>

    "Un Homme devient vieux lorsque ses regrets prennent la place de ses rêves"

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    As-tu besoin de la variable "str" en dehors de la boucle ? Si la réponse est non alors pourquoi la déclarer en dehors de la boucle ? Cela ne fait d'allonger la durée de vie de la référence et donc des objets...

    Le second code est donc nettement préférable.

    Ce qui est coûteux c'est la création de l'objet en lui-même et non pas la référence, qui est bel et bien unique dans les deux cas.


    Il est intéressant de sortir une déclaration d'une boucle lorsque la même valeur est utilisé dans la boucle, afin d'éviter de multiples instanciation inutile, par exemple ne pas faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i=0; i<10000; i++) {
          NumberFormat nf = new DecimalFormat("0000");
          String str = "ma chaîne vaut" + i;
    }
    Mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    final NumberFormat nf = new DecimalFormat("0000");
    for (int i=0; i<10000; i++) {
          String str = "ma chaîne vaut" + i;
    }
    L'objet "nf" a une valeur unique dans toutes la boucle, et on évite de le recréer 10000 fois inutilement...


    a++

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2002
    Messages
    152
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 152
    Points : 94
    Points
    94
    Par défaut
    Super, tout compris !

    Merci !
    </aliasjcdenton>

    "Un Homme devient vieux lorsque ses regrets prennent la place de ses rêves"

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

Discussions similaires

  1. Comment déclarer une variable binaire?
    Par Pragmateek dans le forum C++
    Réponses: 12
    Dernier message: 22/03/2006, 17h35
  2. Déclarer une variable globale
    Par OverLorD34 dans le forum MFC
    Réponses: 8
    Dernier message: 18/03/2006, 10h46
  3. [Variable] Déclarer une variable avec un nom dynamique
    Par jacquesh dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/02/2006, 14h11
  4. Réponses: 5
    Dernier message: 20/09/2005, 22h48
  5. [AS2] déclarer des variables dans une fonction
    Par ooyeah dans le forum ActionScript 1 & ActionScript 2
    Réponses: 12
    Dernier message: 02/08/2005, 12h50

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