Java Uuid Generator (JUG) 技术文档
本文档将详细介绍如何安装和使用 Java Uuid Generator (JUG),并包括项目 API 使用文档以及安装方式。
1. 安装指南
JUG 支持通过 Maven 和 Gradle 进行安装。
Maven 安装
在 Maven pom.xml 文件中添加以下依赖:
<dependency>
<groupId>com.fasterxml.uuid</groupId>
<artifactId>java-uuid-generator</artifactId>
<version>5.1.0</version>
</dependency>
Gradle 安装
在 Gradle build.gradle 文件中添加以下依赖:
implementation 'com.fasterxml.uuid:java-uuid-generator:5.1.0'
2. 项目的使用说明
JUG 可以作为命令行工具使用,也可以作为可插入的组件。
生成 UUID
JUG 的主要用途是生成 UUID 值。首先选择要使用的生成器类型,然后调用其 generate() 方法。以下是一些示例:
UUID uuid = Generators.timeBasedGenerator().generate(); // 版本 1
UUID uuid = Generators.randomBasedGenerator().generate(); // 版本 4
UUID uuid = Generators.nameBasedGenerator().generate("要哈希的字符串"); // 版本 5
// 从 JUG 4.1+ 开始:支持 https://github.com/uuid6/uuid6-ietf-draft 版本 6 和 7:
UUID uuid = Generators.timeBasedReorderedGenerator().generate(); // 版本 6
UUID uuid = Generators.timeBasedEpochGenerator().generate(); // 版本 7
// 从 JUG 5.0 添加的变体:
UUID uuid = Generators.timeBasedEpochRandomGenerator().generate(); // 版本 7,每次调用带有随机值
如果需要自定义生成器,可以保留生成器实例:
TimeBasedGenerator gen = Generators.timeBasedGenerator(EthernetAddress.fromInterface());
UUID uuid = gen.generate();
UUID anotherUuid = gen.generate();
如果你的机器有一个标准的 IP 网络设置,Generators.defaultTimeBasedGenerator(从 JUG 4.2 添加)工厂方法将尝试确定哪个网络接口对应于所有外出网络流量的默认路由,并使用该接口创建基于时间的生成器。如果你想要版本 1 的 UUID 生成器,这通常是一个不错的选择。
TimeBasedGenerator gen = Generators.defaultTimeBasedGenerator();
UUID uuid = gen.generate();
UUID anotherUuid = gen.generate();
生成器是完全线程安全的,因此可以在多个线程之间共享单个实例。
转换 java.util.UUID 值为 byte[]
有时你可能需要将 java.util.UUID 转换为外部序列化形式,例如 String 或字节数组 (byte[])。转换为 String 很简单,可以使用 UUID.toString()(由 JDK 提供)。但是,没有直接的功能将 UUID 转换为 byte[]。
但是 UUIDUtil 类提供了高效的转换方法:
byte[] asBytes = UUIDUtil.asByteArray(uuid);
// 或者如果你已经有了一个更长的缓冲区
byte[] outputBuffer = new byte[1000];
// 在位置 #100 添加
UUIDUtil.toByteArray(uuid, outputBuffer, 100);
从 String、byte[] 构造 java.util.UUID 值
UUID 值通常以 Java String 或 byte[](字节数组)的形式传递,并且需要转换为实际的 java.util.UUID 实例。JUG 提供了优化的转换功能,通过 UUIDUtil 类(包 com.fasterxml.uuid.impl)使用,如下所示:
UUID uuidFromStr = UUIDUtil.uuid("ebb8e8fe-b1b1-11d7-8adb-00b0d078fa18");
byte[] rawUuidBytes = ...; // 包含 16 字节的字节数组
UUID uuidFromBytes = UUIDUtil.uuid(rawUuidBytes)
请注意,虽然 JDK 提供了从 String 构造 UUID 的功能,如 UUID.fromString("ebb8e8fe-b1b1-11d7-8adb-00b0d078fa18"),但它的速度较慢。有关更多信息,请阅读 Measuring performance of Java UUID.fromString()。
3. 项目 API 使用文档
JUG 的 API 使用文档可以在项目的 GitHub Wiki 上找到。这里提供了一些基本的使用示例:
- 生成 UUID
- 转换
java.util.UUID为byte[] - 从
String、byte[]构造java.util.UUID
有关更多详细信息和示例,请参考项目 Wiki。
4. 项目安装方式
项目的安装方式已在“安装指南”部分中说明,可以通过 Maven 或 Gradle 进行安装。具体步骤如下:
- Maven:在
pom.xml文件中添加依赖。 - Gradle:在
build.gradle文件中添加依赖。
以上就是 Java Uuid Generator (JUG) 的技术文档,希望对您有所帮助。
AutoGLM-Phone-9BAutoGLM-Phone-9B是基于AutoGLM构建的移动智能助手框架,依托多模态感知理解手机屏幕并执行自动化操作。Jinja00
Kimi-K2-ThinkingKimi K2 Thinking 是最新、性能最强的开源思维模型。从 Kimi K2 开始,我们将其打造为能够逐步推理并动态调用工具的思维智能体。通过显著提升多步推理深度,并在 200–300 次连续调用中保持稳定的工具使用能力,它在 Humanity's Last Exam (HLE)、BrowseComp 等基准测试中树立了新的技术标杆。同时,K2 Thinking 是原生 INT4 量化模型,具备 256k 上下文窗口,实现了推理延迟和 GPU 内存占用的无损降低。Python00
GLM-4.6V-FP8GLM-4.6V-FP8是GLM-V系列开源模型,支持128K上下文窗口,融合原生多模态函数调用能力,实现从视觉感知到执行的闭环。具备文档理解、图文生成、前端重构等功能,适用于云集群与本地部署,在同类参数规模中视觉理解性能领先。Jinja00
HunyuanOCRHunyuanOCR 是基于混元原生多模态架构打造的领先端到端 OCR 专家级视觉语言模型。它采用仅 10 亿参数的轻量化设计,在业界多项基准测试中取得了当前最佳性能。该模型不仅精通复杂多语言文档解析,还在文本检测与识别、开放域信息抽取、视频字幕提取及图片翻译等实际应用场景中表现卓越。00
GLM-ASR-Nano-2512GLM-ASR-Nano-2512 是一款稳健的开源语音识别模型,参数规模为 15 亿。该模型专为应对真实场景的复杂性而设计,在保持紧凑体量的同时,多项基准测试表现优于 OpenAI Whisper V3。Python00
GLM-TTSGLM-TTS 是一款基于大语言模型的高质量文本转语音(TTS)合成系统,支持零样本语音克隆和流式推理。该系统采用两阶段架构,结合了用于语音 token 生成的大语言模型(LLM)和用于波形合成的流匹配(Flow Matching)模型。 通过引入多奖励强化学习框架,GLM-TTS 显著提升了合成语音的表现力,相比传统 TTS 系统实现了更自然的情感控制。Python00
Spark-Formalizer-X1-7BSpark-Formalizer 是由科大讯飞团队开发的专用大型语言模型,专注于数学自动形式化任务。该模型擅长将自然语言数学问题转化为精确的 Lean4 形式化语句,在形式化语句生成方面达到了业界领先水平。Python00