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