Sunday, August 17, 2008

SCJP: astuce avec les Wrappers

Que va afficher à la console le code suivant ?

class
A{

public static void main(String[] args){

Integer i1 = 127;

Integer i2 = 127;

if(i1 == i2) System.out.println("i1 == i2");

if(i1 != i2) System.out.println("i1 != i2");

Integer i3 = 128;

Integer i4 = 128;

if(i3 == i4) System.out.println("i3 == i4");

if(i3 != i4) System.out.println("i3 != i4");

}

}


Réponse:
i1 == i2
i3 != i4
Si la valeur est plus petite ou égale à 127 ( 27-1 = le nombre maximum de valeur positive pour une primitive de type byte), la VM (Virtual Machine) va automatiquement utiliser l'unboxing pour tester l'équation. A partir de 128, ce n'est plus le cas!

No comments: