| |||||
FORUM HardWare.fr

Programmation

[Java] Question philosophique:declaration de variable dans une boucle| Dernière réponse | |
|---|---|
| Sujet : [Java] Question philosophique:declaration de variable dans une boucle | |
| Gonzoide | Je l'ai pas ici :( |
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| Gonzoide | Je l'ai pas ici :( |
| HappyHarry | la page de dl est down :( |
| Gonzoide | Jad, pile-poil |
| HappyHarry | :??: |
| HappyHarry | bon ben j'vais tester aussi alors ... t'as utilisé koi pour décompiler ? |
| Gonzoide | Ben j'ai pas fait (faire ;)) mon test dans les memes conditions ... mais je me dis que le plus important c'est quand meme le "bytecode decompile" (je sais pas comment dire autrement), qui est l'equivalent du desassemblage, donc un mapping 1-1 entre ce qui est execute et ce qui est lisible ... le reste, c'est du sucre syntaxique :)
PS : Ca se trouve c'est la date et heure de compil qui est stockee dans le .class, va savoir :) |
| HappyHarry |
|
| Gonzoide |
[jfdsdjhfuetppo]--Message édité par Gonzoide--[/jfdsdjhfuetppo] |
| Cherrytree |
Ahhhhh, voilà une intervention qu'elle est bonne. |
| HappyHarry | t sur que c pas ton decompilateur qui decompile de la meme maniere dans les deux cas ?
paske les .class générés sont différents eux |
| Cherrytree | Et puis comme ça, les compilateurs (traditionnels, tout bête) savent combien de mémoire allouer. Pour un if par exemple :
|
| mareek | Ben c'est un principe de base pour tous les langages je pense, on déclare les variables en début de procedure pour une meilleure lisibilité (toutes les déclarations sont regroupées) |
| Cherrytree |
:heink: |
| Gonzoide |
|
| benou |
|
| Cherrytree | OK ! J'avais mal lu. J'espère répondre à ta question cette fois : je pense que c'est effectivement pourri pour la raison que je t'ai apportée plus haut (d'un point de vue sémantique, hein !), mais que javac est pas con et qu'il optimise ton code tout pourri. Essaye de décompiler ton app, pour voir, si je ne me trompe pas. |
| Gonzoide | Ouais je me repete, mais j'avais bien vu que le message passait pas :)
Donc c'est philosophiquement pas beau ... mais pourquoi ? [jfdsdjhfuetppo]--Message édité par Gonzoide--[/jfdsdjhfuetppo] |
| Mara's dad | Cà fait même 2 fois qu'il le dit ! |
| Cherrytree |
Tu veux dire que javac donne strictement le même bytecode ? |
| Gonzoide |
|
| Cherrytree |
Vilain, je le dirais à Mara. |
| Cherrytree | Ben à chaque passage dans ta boucle, tu demandes à la JVM de récréer un objet, c'est pourri comme manière. |
| Mara's dad | Comment !
On peut faire CA en Java ! J'croyais que c'était un language Sérieux . . . |
| Gonzoide | Y'a plus ou moins unanimite dans la communaute Java pour dire que declarer une variable dans une boucle c'est mal (tm) ... est ce que quelqu'un connait la justification de cette regle ? (ce n'est pas un probleme de perfs puisque apres verif le bytecode genere est identique ... plutot un truc de qualite de code, maintenance, testabilite ou un truc du genre) Exemple de ce qu'il faudrait eviter : while ( ... ) { String a = ... } mais plutot: string a = ... while ( ... ) { a = ... } |


