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