Diky moc za uvedeny priklad. Vystupem u me je (Eclipse):

1580473: java.lang.obj...@42e816 - java.lang.obj...@42e816
1580473: (false) 4384790 - 4384790

pricemz je pro me prekvapujici ten (false) ve vypisu. Vzdy jsem si myslel 
ze porovnani objektu obj == clash je prave porovnani pres identityHashCode 
(coz jsem prave mylne pokladal za adresu instance na heapu). Njn, diky za 
informace a jdu to udelat pres tu WeakReference a porovnavat budu pres 
"==".

Diky vsem.


konference-boun...@java.cz napsal dne 29.06.2010 13:01:30:

> Od: Tomáš Záluský <zalu...@centrum.cz>
> Komu: Java <konference@java.cz>
> Datum: 29.06.2010 13:01
> Předmět: Re: Porovnani objektu
> Odeslal: konference-boun...@java.cz
> 
> 
> >identityHashCode() vraci pro ruzne objekty ruzne hodnoty, ale pouze v
> >danem okamziku. 
> 
> To právě popírá program, který jsem linkoval v minulém mailu:
> 
> public class HashClash {
>     public static void main(String[] args) {
>          final Object obj = new Object();
>          final int target = obj.hashCode();
>          Object clash;
>          long ct = 0;
>          do {
>              clash = new Object();
>              ++ct;
>          } while (clash.hashCode() != target && ct<10L*1000*1000*1000L);
>          if (clash.hashCode() == target) {
>              System.out.println(ct+": "+obj+" - "+clash);
>              System.out.printf("%d: (%b) %d - %d%n",ct, obj == 
> clash, System.identityHashCode(obj),System.identityHashCode(clash));
>          } else {
>              System.out.println("No clashes found");
>          }
>     }
> }
> 
> V okamžiku System.out.printf existují dva různé objekty, ale mají 
> stejný identityHashCode. Děje se mi tak v Eclipsu i na Sun JVM
> C:javaworkspaceworkbin>java -version
> java version "1.6.0_18"
> Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
> Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode, sharing)
> 
> >Pokud napr. vytvorim objekt, ulozim si jeho
> >identityHashCode(), pak jej zahodim a vytvorim novy objekt, tento novy
> >objekt muze mit stejny identityHashCode.
> 
> Souhlas.
> 
> TZ
> 
> 
> ================================================
> ...with Ultimate flying is so easy...
> http://www.frisbee.cz    http://www.peaceegg.net
> ================================================

Odpovedet emailem