Porovnani v Jave

RV vicek.radek na cpost.cz
Čtvrtek Srpen 23 11:31:45 CEST 2012


Zdravim,

snazim se doucit nejak systematicky Javu a pri probirani operatoru jsem 
narazil na toto:

         Integer i = 5;
         Integer i2 = 5;
         System.out.println(i == i2); //true

         Integer i3 = 128;
         Integer i4 = 128;
         System.out.println(i3 == i4); //false

ja vim, ze se to takto delat nema, ze je na to treba pouzivat metodu 
equals, ale jak k tomu vyhodnoceni ten zatracene javovskej VM dospeje!

Zkousel jsem to opravdu spustit a je to opravdu tak.

Do hodnoty 127 oboji vraci true. Zrejme to souvisi s obalenim objektovym 
wraperem Integer - zrejme se tedy nevraci hodnota ale jen odkaz na 
instanci, ktera samozrejme neni stejna. Ale proc to proboha je jen v tom 
rozsahu -128/127.

-- 
Radek Vicek




Další informace o konferenci Hw-list