J'ai remarqu=C3=A9 une petite diff=C3=A9rence en java 1.5.0 et 1.4.2 que je=
ne m'explique pas.
Pourquoi est-il possible (dans la version 1.5.0) de d=C3=A9clarer et de com=
piler ceci ?
(ca ne me semble pas logique d'attribuer une valeur de la sorte):
Boolean bool =3D true;
alors que dans la version 1.4.2 il me met des erreurs.
Ne devrait-on pas plutot utiliser :
Boolean bool =3D new Boolean(true);
qui lui fonction dans 1.50 et 1.4.2
J'ai le m=C3=AAme comp=C3=B4rtement avec Interger, Long, ...=20
Est-ce normal ? Ca me semble bizzar :s
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jlp
C'est le mécanisme autoboxing introduit en 1.5 "gath" a écrit dans le message de news: Salut tous le monde
J'ai remarqué une petite différence en java 1.5.0 et 1.4.2 que je ne m'explique pas.
Pourquoi est-il possible (dans la version 1.5.0) de déclarer et de compiler ceci ? (ca ne me semble pas logique d'attribuer une valeur de la sorte): Boolean bool = true; alors que dans la version 1.4.2 il me met des erreurs. Ne devrait-on pas plutot utiliser : Boolean bool = new Boolean(true); qui lui fonction dans 1.50 et 1.4.2
J'ai le même compôrtement avec Interger, Long, ... Est-ce normal ? Ca me semble bizzar :s
-- Julien Ghaye
C'est le mécanisme autoboxing introduit en 1.5
"gath" <gath@localhost.localdomain> a écrit dans le message de
news:87mzezog4o.fsf@localhost.localdomain...
Salut tous le monde
J'ai remarqué une petite différence en java 1.5.0 et 1.4.2 que je ne
m'explique pas.
Pourquoi est-il possible (dans la version 1.5.0) de déclarer et de compiler
ceci ?
(ca ne me semble pas logique d'attribuer une valeur de la sorte):
Boolean bool = true;
alors que dans la version 1.4.2 il me met des erreurs.
Ne devrait-on pas plutot utiliser :
Boolean bool = new Boolean(true);
qui lui fonction dans 1.50 et 1.4.2
J'ai le même compôrtement avec Interger, Long, ...
Est-ce normal ? Ca me semble bizzar :s
C'est le mécanisme autoboxing introduit en 1.5 "gath" a écrit dans le message de news: Salut tous le monde
J'ai remarqué une petite différence en java 1.5.0 et 1.4.2 que je ne m'explique pas.
Pourquoi est-il possible (dans la version 1.5.0) de déclarer et de compiler ceci ? (ca ne me semble pas logique d'attribuer une valeur de la sorte): Boolean bool = true; alors que dans la version 1.4.2 il me met des erreurs. Ne devrait-on pas plutot utiliser : Boolean bool = new Boolean(true); qui lui fonction dans 1.50 et 1.4.2
J'ai le même compôrtement avec Interger, Long, ... Est-ce normal ? Ca me semble bizzar :s
-- Julien Ghaye
jeje900ss
gath wrote:
J'ai remarqué une petite différence en java 1.5.0 et 1.4.2 que je ne m'explique pas.
Pourquoi est-il possible (dans la version 1.5.0) de déclarer et de compiler ceci ? (ca ne me semble pas logique d'attribuer une valeur de la sorte): Boolean bool = true; alors que dans la version 1.4.2 il me met des erreurs. Ne devrait-on pas plutot utiliser : Boolean bool = new Boolean(true); qui lui fonction dans 1.50 et 1.4.2
Comme répondu précedement c'est une nouvelle fonctionnalité du 1.5 (l'autoboxing).
C'est bien d'avoir fait la remarque, car l'autre jour je voyais un débutant en Java qui utilisait ce mécanisme sans s'en rendre compte et en fait du coup il avait une lacune pour comprendre la différence entre les type primitif et objet. Et ne comprenait pas que ce genre de chose : Integer toto = new Integer(5); Integer tata = new Integer(5); System.out.println(toto == tata);
renvoi false...
Jérôme
gath wrote:
J'ai remarqué une petite différence en java 1.5.0 et 1.4.2 que je ne m'explique pas.
Pourquoi est-il possible (dans la version 1.5.0) de déclarer et de compiler ceci ?
(ca ne me semble pas logique d'attribuer une valeur de la sorte):
Boolean bool = true;
alors que dans la version 1.4.2 il me met des erreurs.
Ne devrait-on pas plutot utiliser :
Boolean bool = new Boolean(true);
qui lui fonction dans 1.50 et 1.4.2
Comme répondu précedement c'est une nouvelle fonctionnalité du 1.5
(l'autoboxing).
C'est bien d'avoir fait la remarque, car l'autre jour je voyais un
débutant en Java qui utilisait ce mécanisme sans s'en rendre compte et
en fait du coup il avait une lacune pour comprendre la différence entre
les type primitif et objet.
Et ne comprenait pas que ce genre de chose :
Integer toto = new Integer(5);
Integer tata = new Integer(5);
System.out.println(toto == tata);
J'ai remarqué une petite différence en java 1.5.0 et 1.4.2 que je ne m'explique pas.
Pourquoi est-il possible (dans la version 1.5.0) de déclarer et de compiler ceci ? (ca ne me semble pas logique d'attribuer une valeur de la sorte): Boolean bool = true; alors que dans la version 1.4.2 il me met des erreurs. Ne devrait-on pas plutot utiliser : Boolean bool = new Boolean(true); qui lui fonction dans 1.50 et 1.4.2
Comme répondu précedement c'est une nouvelle fonctionnalité du 1.5 (l'autoboxing).
C'est bien d'avoir fait la remarque, car l'autre jour je voyais un débutant en Java qui utilisait ce mécanisme sans s'en rendre compte et en fait du coup il avait une lacune pour comprendre la différence entre les type primitif et objet. Et ne comprenait pas que ce genre de chose : Integer toto = new Integer(5); Integer tata = new Integer(5); System.out.println(toto == tata);
C'est le mécanisme autoboxing introduit en 1.5 "gath" a écrit dans le message de news: Salut tous le monde
J'ai remarqué une petite différence en java 1.5.0 et 1.4.2 que je ne m'explique pas.
Pourquoi est-il possible (dans la version 1.5.0) de déclarer et de compiler ceci ? (ca ne me semble pas logique d'attribuer une valeur de la sorte): Boolean bool = true; alors que dans la version 1.4.2 il me met des erreurs. Ne devrait-on pas plutot utiliser : Boolean bool = new Boolean(true); qui lui fonction dans 1.50 et 1.4.2
J'ai le même compôrtement avec Interger, Long, ... Est-ce normal ? Ca me semble bizzar :s
C'est le mécanisme autoboxing introduit en 1.5
"gath" <gath@localhost.localdomain> a écrit dans le message de
news:87mzezog4o.fsf@localhost.localdomain...
Salut tous le monde
J'ai remarqué une petite différence en java 1.5.0 et 1.4.2 que je ne
m'explique pas.
Pourquoi est-il possible (dans la version 1.5.0) de déclarer et de compiler
ceci ?
(ca ne me semble pas logique d'attribuer une valeur de la sorte):
Boolean bool = true;
alors que dans la version 1.4.2 il me met des erreurs.
Ne devrait-on pas plutot utiliser :
Boolean bool = new Boolean(true);
qui lui fonction dans 1.50 et 1.4.2
J'ai le même compôrtement avec Interger, Long, ...
Est-ce normal ? Ca me semble bizzar :s
C'est le mécanisme autoboxing introduit en 1.5 "gath" a écrit dans le message de news: Salut tous le monde
J'ai remarqué une petite différence en java 1.5.0 et 1.4.2 que je ne m'explique pas.
Pourquoi est-il possible (dans la version 1.5.0) de déclarer et de compiler ceci ? (ca ne me semble pas logique d'attribuer une valeur de la sorte): Boolean bool = true; alors que dans la version 1.4.2 il me met des erreurs. Ne devrait-on pas plutot utiliser : Boolean bool = new Boolean(true); qui lui fonction dans 1.50 et 1.4.2
J'ai le même compôrtement avec Interger, Long, ... Est-ce normal ? Ca me semble bizzar :s
Il est clair que ca risque d'embrouiller plus d'un débutant. Surtout que d'après ce que j'ai compris, le sytème interne de la jvm n'a pas changé a ce niveau. c'est juste le compilateur qui effectue ces auto(un)boxing ... on n'est plus obligé de le faire manuellement.
C'est donc une chance que Eclipse (par exemple) permet de signaler, grâce à une coloration syntaxique à paramétrer (couleur + gras? + italique? + barré?), les lignes dans lesquelles un autoboxing se produit.
Au moins, les débutants qui prendront la peine de configurer Eclipse pourront voir à tout moment où et quand se font ces autoboxings dans leur code.
Moi je dis "Bravo Eclipse". Mais bon, il n'est peut-être pas le seul à le permette... NetBeans, peut-être ?
Cédric Olmanst
Il est clair que ca risque d'embrouiller plus d'un débutant.
Surtout que d'après ce que j'ai compris, le sytème interne de la jvm
n'a pas changé a ce niveau. c'est juste le compilateur qui effectue
ces auto(un)boxing ... on n'est plus obligé de le faire manuellement.
C'est donc une chance que Eclipse (par exemple) permet de signaler,
grâce à une coloration syntaxique à paramétrer (couleur + gras? +
italique? + barré?), les lignes dans lesquelles un autoboxing se
produit.
Au moins, les débutants qui prendront la peine de configurer Eclipse
pourront voir à tout moment où et quand se font ces autoboxings dans
leur code.
Moi je dis "Bravo Eclipse". Mais bon, il n'est peut-être pas le seul
à le permette... NetBeans, peut-être ?
Il est clair que ca risque d'embrouiller plus d'un débutant. Surtout que d'après ce que j'ai compris, le sytème interne de la jvm n'a pas changé a ce niveau. c'est juste le compilateur qui effectue ces auto(un)boxing ... on n'est plus obligé de le faire manuellement.
C'est donc une chance que Eclipse (par exemple) permet de signaler, grâce à une coloration syntaxique à paramétrer (couleur + gras? + italique? + barré?), les lignes dans lesquelles un autoboxing se produit.
Au moins, les débutants qui prendront la peine de configurer Eclipse pourront voir à tout moment où et quand se font ces autoboxings dans leur code.
Moi je dis "Bravo Eclipse". Mais bon, il n'est peut-être pas le seul à le permette... NetBeans, peut-être ?
Cédric Olmanst
Ced
Surtout que d'après ce que j'ai compris, le sytème interne de la jvm n'a pas changé a ce niveau. c'est juste le compilateur qui effectue ces auto(un)boxing ...
J'ai lu que ça se faisait au runtime (donc à l'exécution, et non à la compilation), ce qui est donc pénalisant du côté des performances.
Quelqu'un peut confirmer ?
Cédric Olmanst
Surtout que d'après ce que j'ai compris, le sytème interne de la jvm
n'a pas changé a ce niveau. c'est juste le compilateur qui effectue
ces auto(un)boxing ...
J'ai lu que ça se faisait au runtime (donc à l'exécution, et non à
la compilation), ce qui est donc pénalisant du côté des
performances.
Surtout que d'après ce que j'ai compris, le sytème interne de la jvm n'a pas changé a ce niveau. c'est juste le compilateur qui effectue ces auto(un)boxing ...
J'ai lu que ça se faisait au runtime (donc à l'exécution, et non à la compilation), ce qui est donc pénalisant du côté des performances.
Quelqu'un peut confirmer ?
Cédric Olmanst
Olivier Thomann
J'ai lu que ça se faisait au runtime (donc à l'exécution, et non à la compilation), ce qui est donc pénalisant du côté des performances. Quelqu'un peut confirmer ? Je confirme. Non seulement c'est pénalisant, mais dans 90% des cas, ca
ne sert strictement a rien. L'autoboxing est de mon point de vue une énormité puisque le développeur peut ne plus se rendre compte quand c'est réalisé. Sa seule raison d'être est de simplifier le code. -- Olivier
J'ai lu que ça se faisait au runtime (donc à l'exécution, et non à
la compilation), ce qui est donc pénalisant du côté des
performances.
Quelqu'un peut confirmer ?
Je confirme. Non seulement c'est pénalisant, mais dans 90% des cas, ca
ne sert strictement a rien. L'autoboxing est de mon point de vue une
énormité puisque le développeur peut ne plus se rendre compte quand
c'est réalisé. Sa seule raison d'être est de simplifier le code.
--
Olivier
J'ai lu que ça se faisait au runtime (donc à l'exécution, et non à la compilation), ce qui est donc pénalisant du côté des performances. Quelqu'un peut confirmer ? Je confirme. Non seulement c'est pénalisant, mais dans 90% des cas, ca
ne sert strictement a rien. L'autoboxing est de mon point de vue une énormité puisque le développeur peut ne plus se rendre compte quand c'est réalisé. Sa seule raison d'être est de simplifier le code. -- Olivier
Ced
Et est-ce qu'on n'exagèrerait pas un peu l'impact sur les performances ? Est-ce que quelqu'un a déjà fait un benchmark pour voir ?
Et est-ce qu'on n'exagèrerait pas un peu l'impact sur les performances
?
Est-ce que quelqu'un a déjà fait un benchmark pour voir ?