2014-11-04 13 views

risposta

6

Wikipedia says:

versione 4 UUID utilizzano uno schema contando solo su numeri casuali. Questo algoritmo imposta il numero di versione (4 bit) e due bit riservati. Tutti gli altri bit (i restanti 122 bit) vengono impostati utilizzando un'origine dati casuale o pseudocasuale.

Versione 4 UUID hanno la forma xxxxxxxxxxxx-4xxx-Yxxx-xxxxxxxxxxxx dove x rappresenta una cifra esadecimale ed y è uno di 8, 9, A, B o

Così il primo bit del la metà meno significativa sarà sempre 1, rendendola un numero negativo.

+0

Grazie. Ha senso per me. A proposito, qualche suggerimento su come generare un valore lungo unico? – Kai

+0

@Kai Questa è una domanda separata (e una che è stata chiesta prima su questo sito). – yshavit

+0

Che ne dici di SecureRandom # nextLong? – Thilo

1

Questo può anche essere utile per dimostrare cosa aspettarsi da getLeastSignificantBits():

/** 
* @see UUID#getLeastSignificantBits() 
*/ 
public void test_getLeastSignificantBits() { 
    UUID uuid = new UUID(0, 0); 
    assertEquals(0, uuid.getLeastSignificantBits()); 
    uuid = new UUID(0, Long.MIN_VALUE); 
    assertEquals(Long.MIN_VALUE, uuid.getLeastSignificantBits()); 
    uuid = new UUID(0, Long.MAX_VALUE); 
    assertEquals(Long.MAX_VALUE, uuid.getLeastSignificantBits()); 
} 

source

Problemi correlati