Porovnani v Jave

Jiří Vojtek konference na vojtek.biz
Čtvrtek Srpen 23 12:21:10 CEST 2012


Je to proto, ze tyto hodnoty existuji jako predgenerovane objekty :)
Protoze v Jave je vsechno objekt. Pokud date cislo vyssi tak se ten objekt
teprve vytvori, ale pro zvyseni rychlosti pro mala cisla uz to je
predvarene.
J.V.

-----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