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

Reply via email to