Le package d'importation est-il plus lent que le fichier import.MyClass? Si oui, dans quel scneario: runtime ou compilation?L'importation Java peut être lente?
Répondre
import package.*
peut être plus lent au moment de la compilation. Il peut également ralentir votre EDI, s'il y a beaucoup de choses définies dans ce paquet.
Au moment de l'exécution, there's no difference.
'{citationrequired}' - avez-vous des preuves que c'est plus lent au moment de la compilation? – skaffman
Vous voulez dire {{citation needed}} ': P Non, je n'ai pas de telles preuves à portée de main. J'ai cependant remarqué le ralentissement de l'IDE. – Thomas
Oh, ma citation vient d'apparaître: http://stackoverflow.com/questions/1983435/eclipse-java-is-it-harmful-to-import-java-namespace/1984499#1984499 – Thomas
Cela se produit pendant la compilation. S'il y a une différence de vitesse, c'est négligeable. Comme le compilateur effectue certaines optimisations, il ne sera pas plus lent au moment de l'exécution.
Il pourrait être plus lent au moment de la compilation, mais dans 99,99% des cas, vous ne vous souciez probablement pas ...
Ce n'est pas vraiment une optimisation, c'est juste que le compilateur compile le nom complet dans le fichier .class (import est une directive de compilation). –
Je suppose qu'une importation générique pourrait ralentir la compilation un peu si le paquet importé était exceptionnellement énorme mais en pratique, c'est négligeable.
Les instructions d'importation n'ont aucun effet lors de l'exécution. La classe compilée est identique, que les importations génériques ou explicites soient utilisées. Cependant, les importations génériques sont généralement déconseillées, car elles rendent le code difficile à lire; ce n'est pas clair pour un lecteur humain de savoir de quel paquet provient un type lorsque plusieurs paquets ont été importés de cette façon.
Autres raisons pour lesquelles les importations de caractères génériques sont déconseillées: http://javadude.com/articles/importondemandisevil.html –
RE le lien: Tout à fait vrai, je me suis brûlé dessus moi-même. J'ai également été brûlé plusieurs fois lorsque j'ai importé java.util. * Afin que je puisse utiliser Date, puis plus tard java.sql. *, Ou vice versa. Ce n'est pas exactement le même problème que le lien décrit - l'erreur est apparue quand j'ai ajouté l'importation, pas quand un autre aspirant pauvre a vérifié mon code - mais le problème sous-jacent est le même: Vous êtes brûlé par un ambigu référence lorsque vous ne vous souciez pas de l'une des options. Cela dit, je dois avouer que je ne m'inquiète généralement pas, et que j'importe quelque chose. * Chaque fois que je veux plus de 3. – Jay
Les IDE modernes (et même certains anciens) vous diront dans quel paquet se trouve une classe si vous survolez le nom de la classe dans une déclaration. Je ne vois pas comment cela rend votre code moins lisible. Si vous avez deux classes avec le même nom dans des paquets différents, pour réduire la confusion, vous devez utiliser le nom complet du paquet dans l'instruction de déclaration d'objet, mais cela n'est vraiment nécessaire que si vous utilisez deux classes identiques dans une classe. – belgariontheking
- 1. Comment "définir l'horodatage" peut-il être une requête lente?
- 2. La collecte des ordures Python peut-elle être aussi lente?
- 3. java collection lente conversion
- 4. Java Object "ne peut pas être déréférencé"
- 5. La recherche de svn revision semble soudainement lente (puisque svn 1.5 peut-être?)
- 6. La création d'objets en Java est lente
- 7. de type Java ne peut pas être résolu
- 8. Java: Pourquoi l'égalité des chaînes peut-elle être prouvée avec ==?
- 9. Comment ce code Java peut-il être compilé?
- 10. Mon logiciel Java peut-il être transformé en logiciel .exe?
- 11. La programmation du système peut-elle être effectuée en JAVA?
- 12. Cette impression peut-elle être effectuée en Flash/Java?
- 13. menu déroulant question, peut être simple peut-être pas
- 14. Jquery SI peut-être?
- 15. Peut-il être fait?
- 16. apduToolTask ne peut pas être trouvé
- 17. À quelle vitesse RMI peut-il être?
- 18. Un objet Java peut-il être transmis de Java Script à l'applet?
- 19. BoxLayout ne peut pas être partagé erreur
- 20. troube avec iis (peut-être)
- 21. Peut être raccourci avec JQuery?
- 22. Valgrind peut-être perdu - MYSQL
- 23. Zend Routing peut être fait
- 24. Variable d'application PHP ... peut-être?
- 25. [Smarty, et peut-être doctrine]
- 26. Requête SQL (peut-être simple)
- 27. Array Tree ... Peut-être récursif?
- 28. Erreur de routage? peut-être
- 29. int ne peut pas être déréférencé
- 30. L'application Java est plus lente en raison du démarrage Web
http://stackoverflow.com/questions/1983435/eclipse-java-is-it-harmful-to-import-java-namespace/1984499#1984499 –