Porovnani v Jave

Radek Benedikt benedikt na lphard.cz
Čtvrtek Srpen 23 11:52:29 CEST 2012


Rozsah -128/127 se strojove vejde do typu byte se znamenkem. Proc se ale
lisi implementace, popr. definice pouzitych vyrazu, k tomu at se vyjadri
JAVAri. V JAVe nedelam a ani jsem se nezabyval jejím kompilatorem.


Radek (benedikt2hw.cz)



-----Original Message-----
From: hw-list-bounces na list.hw.cz [mailto:hw-list-bounces na list.hw.cz] On
Behalf Of RV
Sent: Thursday, August 23, 2012 11:32 AM
To: HW-news
Subject: Porovnani v Jave

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


_______________________________________________
HW-list mailing list  -  sponsored by www.HW.cz
Hw-list na list.hw.cz
http://list.hw.cz/mailman/listinfo/hw-list



Další informace o konferenci Hw-list