import java.util.UUID; public class UUIDExample { public static void main(String[] args) { UUID randomUUID = UUID.randomUUID(); System.out.println("Random UUID: " + randomUUID); String name = "example"; UUID nameUUID = UUID.nameUUIDFromBytes(name.getBytes()); System.out.println("Name-based UUID: " + nameUUID); String uuidString = "db7a7d58-338c-4fd4-893f-7196eae11aef"; UUID.fromString(uuidString); System.out.println("Version: " + randomUUID.version()); System.out.println("Variant: " + randomUUID.variant()); System.out.println("Timestamp: " + randomUUID.timestamp()); System.out.println("Clock sequence: " + randomUUID.clockSequence()); System.out.println("Node: " + randomUUID.node()); } } import java.util.UUID; public class NameUUIDExample { public static void main(String[] args) { String namespace = "6ba7b810-9dad-11d1-80b4-00c04fd430c8"; String name = "example"; UUID namespaceUUID = UUID.fromString(namespace); UUID nameUUID = UUID.nameUUIDFromBytes(concatenateBytes(namespaceUUID, name.getBytes())); System.out.println("Name-based UUID: " + nameUUID); } private static byte[] concatenateBytes(UUID namespaceUUID, byte[] nameBytes) { byte[] namespaceBytes = new byte[16]; long mostSignificant = namespaceUUID.getMostSignificantBits(); long leastSignificant = namespaceUUID.getLeastSignificantBits(); for (int i = 0; i < 8; i++) { namespaceBytes[i] = (byte) (mostSignificant >>> 8 * (7 - i)); namespaceBytes[i + 8] = (byte) (leastSignificant >>> 8 * (7 - i)); } byte[] resultBytes = new byte[namespaceBytes.length + nameBytes.length]; System.arraycopy(namespaceBytes, 0, resultBytes, 0, namespaceBytes.length); System.arraycopy(nameBytes, 0, resultBytes, namespaceBytes.length, nameBytes.length); return resultBytes; } }


上一篇:
下一篇:
切换中文