UUID yra plačiai naudojamas 128 bitų ilgio unikalus identifikavimo numeris kompiuterinėje sistemoje. Jį sudaro šešioliktainiai skaitmenys, atskirti keturiais brūkšneliais. Šiame skyriuje aptarsime kas yra UUID ir kaip atsitiktinai sugeneruoti UUID (4 versija) Java .
UUID
UUID reiškia Universaliai unikalus identifikatorius . UUID standartizuoja Open Software Foundation (OSF). Tai yra paskirstymo skaičiavimo aplinkos (DCE) dalis. UUID yra 36 simbolių (128 bitų) ilgio unikalus numeris. Jis taip pat žinomas kaip a Pasauliniu mastu unikalus identifikatorius (GUID).
json formato pavyzdys
UUID naudojimas priklauso nuo situacijos, naudojimo atvejų, sudėtingumo ir sąlygų. Kai kurie UUID naudojimo būdai yra šie:
- Jis naudojamas unikaliems URN (vienodiems išteklių pavadinimams) generuoti.
- Jis taip pat gali būti naudojamas operacijų ID generuoti.
- Plačiai naudojamas kriptografinėje programoje.
- Žiniatinklio programoje jis gali būti naudojamas generuoti seansų ID.
UUID tipai
Yra keturi UUID tipai:
- Laiku pagrįstas UUID (1 versija)
- DCE saugos UUID (2 versija)
- Vardu pagrįstas UUID (3 ir 5 versijos)
- Atsitiktinai sugeneruotas UUID (4 versija)
UUID variantai
Yra daug UUID variantų, bet Išsiplauti druską variantas yra plačiai naudojamas. 2 varianto išdėstymas t.y. Išsiplauti druską yra taip:
MSB sudaro šie nepasirašyti laukai:
0xFFFFFFFF00000000 time_low
0x00000000FFFF0000 time_mid
0x000000000000F000 versija
0x0000000000000FFF time_hi
LSB sudaro šie nepasirašyti laukai:
0xC000000000000000 variantas
0x3FFF000000000000 clock_seq
0x0000FFFFFFFFFFFF mazgas
Lauke Variantas yra reikšmė, identifikuojanti UUID išdėstymą. Aukščiau aptartas išdėstymas galioja tik 2 variantui.
java poeilutė yra
Java UUID klasė
Norėdami sukurti UUID , Java programavimo kalba suteikia UUID klasę. Klasė priklauso java.util paketą. Jis išplečia objektų klasę ir įgyvendina serializuoti ir palyginamas sąsaja. Klasė generuoja nekintamą UUID, kuris reiškia 128 bitų reikšmę.
Java UUID klasės metodai
Metodai | apibūdinimas |
---|---|
clockSequence () | Jis grąžina laikrodžio sekos reikšmę, susietą su šiuo nurodytu UUID. |
palyginti su() | Šis metodas lygina UUID su konkrečiu UUID. |
lygus () | Metodas palygina šį objektą su nurodytu objektu. |
fromString() | Jis generuoja UUID iš eilutės reprezentacijos. |
getLeastSignificantBits() | Jis grąžina mažiausiai reikšmingus 64 bitus iš šio UUID 128 bitų vertės. |
getMostSignificantBits() | Jis grąžina svarbiausius 64 šio UUID 128 bitų vertės bitus. |
maišos kodas () | Jis grąžina šio UUID maišos kodą. |
vardasUUIDNuo baitų () | Jis nuskaito 3 versijos (pagal pavadinimą) UUID pagal nurodytą baitų masyvą. |
mazgas () | Jis grąžina mazgo reikšmę, susietą su nurodytu UUID. |
atsitiktinisUUID() | Jis grąžina atsitiktinai sugeneruotą UUID. |
laiko žyma () | Jis grąžina laiko žymos reikšmę, susietą su šiuo nurodytu UUID. |
toString() | Jis grąžina objektą String, atstovaujantį šį UUID. |
variantas () | Jis naudojamas norint gauti variantą, susietą su nurodytu UUID. |
versija () | Galime gauti versijos numerį, susietą su nurodytu UUID. |
UUID generavimas
Šis pavyzdys generuoja atsitiktinį UUID.
UUIDexample.java
import java.util.UUID; public class UUIDExample { public static void main(String args[]) { //generates random UUID UUID uuid=UUID.randomUUID(); System.out.println(uuid); } }
Išvestis:
2b733549-d2cc-40f0-b7f3-9bfa9f3c1b89
Konvertuoti iš eilutės į UUID
StringToUUIDexample.java
import java.util.UUID; public class StringtoUUIDExample { public static void main(String args[]) { //randomly generates a UUID UUID uuid = UUID.randomUUID(); System.out.println('Randomly Generated UUID: '+uuid); //converts the randomly generated UUID into String String uuidAsString = uuid.toString(); System.out.println('UUID as String: '+uuidAsString); //generates a UUID from the String UUID sameUuid = UUID.fromString(uuidAsString); System.out.println('UUID from String: '+sameUuid); //compares UUID generated from the string with the randomly generated UUID System.out.println(sameUuid.equals(uuid)); } }
Išvestis:
Randomly Generated UUID: fe8a03d7-6495-4231-9843-8ee2f5282620 UUID as String: fe8a03d7-6495-4231-9843-8ee2f5282620 UUID from String: fe8a03d7-6495-4231-9843-8ee2f5282620 true