• [^] # Re: Comparaison de chaine

    Posté par . En réponse au message portée des méthodes. Évalué à 2.

    en même temps en java mon préféré reste

    Integer a= new Iteger(126);
    Integer b= new Iteger(126);

    System.out.println(a==b ) ; // false
    a++;
    b++;
    System.out.println(a==b ); // true
    a++;
    b++;
    System.out.println(a==b ); // false

    c'est t'y pas joli :)
    et faut se farcir la norme pour le voir la blague.

    - java 5 powa !!! -

    Pour les néophytes, c'est un problème d'auto boxing/unboxing avec valeur mutualisé entre -128 / +127 si je me souviens bien.

    Quand on force les new Integer, les références sont différente
    calcul, 127 - valeur mutualisé, les référence pointent au même endroit.
    re calcul
    > 127, référence non mutualisés.

    Et ça c'est quand même sacrément gênant, on fait les tests sur une 100 aine de valeurs, à la main on vérifie (c'est déjà bien), on passe en prod, paf ça plante.

    Il ne faut pas décorner les boeufs avant d'avoir semé le vent