UUID是指通用唯一識別碼(Universally Unique Identifier),它是一種軟體構建的標準,也是一種生成方式,用於在分散式計算環境中,為許多不同的設備生成統一的唯一標識符。在Java編程語言中,UUID通常用於為對象創建唯一標識符,以便跟蹤對象在代碼和計算機之間的移動和操作。
一、使用Java自帶的UUID類生成UUID
public static String getUUID() { UUID uuid = UUID.randomUUID(); String str = uuid.toString(); str = str.replace("-", ""); return str; }
Java自帶的UUID類提供了生成UUID的方法,我們只需要調用該類的靜態方法randomUUID(),就可以生成一個UUID。生成的UUID的格式為8-4-4-4-12的十六進位字元串,其中橫杠「-」是分隔符。
如果需要去除橫杠,我們只需要將字元串中的「-」替換為空字元串即可。
二、使用Apache Commons Lang生成UUID
public static String getUUID() { return RandomStringUtils.random(32, true, true); }
Apache Commons Lang是一個常用的Java開發包,它提供了很多工具類,包括字元串、日期、IO等方面的操作。其中,提供了生成UUID的工具類RandomStringUtils。
我們只需要調用該類的靜態方法random(),指定生成UUID的長度和是否包含字母、數字,就可以生成一個UUID。
三、使用Java8的java.util.UUID生成UUID
public static String getUUID() { UUID uuid = UUID.randomUUID(); return uuid.toString().replaceAll("-", ""); }
從Java8開始,UUID類提供了一個靜態方法randomUUID(),該方法返回一個隨機的UUID。通過調用toString()方法,我們可以將UUID轉化為字元串。如果需要去除UUID中的橫杠,我們可以使用String類的replaceAll()方法,將「-」替換為空字元串。
四、使用Google的guava庫生成UUID
public static String getUUID() { return UUID.randomUUID().toString().replaceAll("-", ""); }
Google的guava庫是一個廣受歡迎的功能性Java開發包,它提供了許多有用的工具類和函數。其中,提供了一個方便的方法來生成UUID,使用方式與Java自帶的UUID類類似。
我們只需要調用UUID類的randomUUID()生成一個UUID,然後調用toString()方法將其轉化為字元串,並使用replaceAll()方法去除橫杠。
五、使用JDK9的java.util.concurrent.ThreadLocalRandom生成UUID
public static String getUUID() { byte[] bytes = new byte[16]; ThreadLocalRandom.current().nextBytes(bytes); ByteBuffer buffer = ByteBuffer.wrap(bytes); return new UUID(buffer.getLong(), buffer.getLong()).toString().replaceAll("-", ""); }
JDK9中引入了一個新的類ThreadLocalRandom,該類提供了一種線程局部的、更高效的方法來生成隨機數,比使用Math.random()或java.util.Random更高效。我們可以使用ThreadLocalRandom生成UUID。
首先,我們需要生成一個16位元組的byte數組,然後通過ThreadLocalRandom.current().nextBytes()方法來填充這個數組。接下來,我們將這個byte數組轉化為ByteBuffer,並使用ByteBuffer的getLong()方法來獲取2個long類型的值。最後,我們使用這2個long類型的值來構造一個UUID,並將其轉化為字元串,並使用replaceAll()方法去除橫杠。
六、總結
在Java編程中,我們有多種方法可以生成UUID。我們可以使用Java自帶的UUID類、Apache Commons Lang、Java8的java.util.UUID類、Google的guava庫、JDK9的java.util.concurrent.ThreadLocalRandom等。每種方法都有自己的特點和優劣,需要根據實際情況選擇。
原創文章,作者:HDYKL,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/316407.html