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