- java数组入门教程
- java数组的遍历
- 基于debian(ubuntu)的JDK安装与卸载-vps环境搭建实录(一)
- java环境变量配置(windows7系统)
- java开发环境配置
- 第一个java程序 helloword
- 使用eclipse快速开发java程序
- Java基础语法
- Java对象和类
- Java基本数据类型
- Java变量类型
- Java修饰符
- Java运算符
- Java循环结构 – for, while 及 do…while
- Java分支结构 – if…else/switch
- Java Number类
- Java Character类
- Java String类
- Java日期时间
- java异常处理分类
- java Exception异常处理实例
- java.util.UUID 工具类详解
- java数字格式化类DecimalFormat详解
- JDBC系列教程之一:jdbc简单介绍
- JDBC系列教程之二:jdbc连接数据的步骤
- JDBC系列教程之三:JDBC基本的CRUD(创建、读取、更新、删除)
- JDBC系列教程之四:SQL注入PreparedStatement和Statement
- JDBC系列教程之五:数据类型
- JDBC系列教程之六:一个简单用户相关的数据访问层
- JDBC系列教程之七:用配置文件(properties)和反射实现与具体类的耦合
- JDBC系列教程之八:事务-ACID
- JDBC系列教程之九:事务-SavePoint与JTA
- JDBC系列教程之十:隔离级别
- JDBC系列教程之十一:其他的几个API
- JDBC系列教程之十二:DatabaseMetaData(数据库的元数据信息)和ParameterMetaData(参数的元数据信息)
- JDBC系列教程之十三:ResultSetMetaData
- JDBC系列教程之十四:用反射ResultSetMetaData将查询结果读入对象中
- JDBC系列教程之十五:数据源和连接池
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
知识点
相关文章
更多最近更新
更多java.util.UUID 工具类详解
2019-03-12 23:47|来源: 网路
java.util.UUID是jdk1.5之后新增的一个工具类,在java.util下,用它可以产生一个号称全球唯一的ID
1、一个UUID表示一个128位的值,,一般用16进制表示。
2、UUID是一个128位长的数字算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成UUID。从理论上讲,如果一台机器每秒产生10000000个UUID,则可以保证(概率意义上)3240年不重复。
3、它是用于创建随机文件名,在Web应用程序的会话ID,事务ID等
4、还有UUID四种不同的基本类型:基于时间,DCE安全性,基于名称,并随机生成的UUID
示例:
import java.util.UUID;
public class Test {
public static void main(String[] args) {
UUID uuid = UUID.randomUUID();
System.out.println (uuid);
}
}
帮助文档说明:
java.util
类 UUID
java.lang.Objectjava.util.UUID
- 所有已实现的接口:
- Serializable, Comparable<UUID>
表示通用唯一标识符 (UUID) 的类。 UUID 表示一个 128 位的值。
这些通用标识符具有不同的变体。此类的方法用于操作 Leach-Salz 变体,不过构造方法允许创建任何 UUID 变体(将在下面进行描述)。
变体 2 (Leach-Salz) UUID 的布局如下: long 型数据的最高有效位由以下无符号字段组成:
0xFFFFFFFF00000000 time_low 0x00000000FFFF0000 time_mid 0x000000000000F000 version 0x0000000000000FFF time_hilong 型数据的最低有效位由以下无符号字段组成:
0xC000000000000000 variant 0x3FFF000000000000 clock_seq 0x0000FFFFFFFFFFFF node
variant 字段包含一个表示 UUID 布局的值。以上描述的位布局仅在 UUID 的 variant 值为 2(表示 Leach-Salz 变体)时才有效。
version 字段保存描述此 UUID 类型的值。有 4 种不同的基本 UUID 类型:基于时间的 UUID、DCE 安全 UUID、基于名称的 UUID 和随机生成的 UUID。 这些类型的 version 值分别为 1、2、3 和 4。
有关用于创建 UUID 的算法的更多信息,请参阅 RFC 4122: 通用唯一标识符 (Universally Unique Identifier) (UUID) URN Namespace, section 4.2 ";创建基于时间的 UUID" 的算法。
构造方法摘要 | |
---|---|
UUID(long mostSigBits, long leastSigBits) 使用指定的数据构造新的 UUID。 |
方法摘要 | |
---|---|
int |
clockSequence() 与此 UUID 相关联的时钟序列值。 |
int |
compareTo(UUID val) 将此 UUID 与指定的 UUID 比较。 |
boolean |
equals(Object obj) 将此对象与指定对象比较。 |
static UUID |
fromString(String name) 根据 toString() 方法中描述的字符串标准表示形式创建 UUID。 |
long |
getLeastSignificantBits() 返回此 UUID 的 128 位值中的最低有效 64 位。 |
long |
getMostSignificantBits() 返回此 UUID 的 128 位值中的最高有效 64 位。 |
int |
hashCode() 返回此 UUID 的哈希码。 |
static UUID |
nameUUIDFromBytes(byte[] name) 根据指定的字节数组获取类型 3(基于名称的)UUID 的静态工厂。 |
long |
node() 与此 UUID 相关的节点值。 |
static UUID |
randomUUID() 获取类型 4(伪随机生成的)UUID 的静态工厂。 |
long |
timestamp() 与此 UUID 相关联的时间戳值。 |
String |
toString() 返回表示此 UUID 的 String 对象。 |
int |
variant() 与此 UUID 相关联的变体号。 |
int |
version() 与此 UUID 相关联的版本号。 |
相关问答
更多-
JAVA的集合框架中有那些类,他们都有那些区别[2022-08-03]
区别详解,没法详解,数据结构就够研究几个月的,不过要是把目标放在会用上,就容易多了,也无需了解底层,看看API文档,知道什么方法是干什么的会用就行了。 集合类巨多无比,其实常用的也就这么几个,其他的都不用太看,你就看看:ArrayList、LinkedList、HashMap、TreeMap、HashSet 就行了,我理解也有限,简单说一下这几个: Collection下面有List和Set,List有ArrayList、LinkedList,ArrayList底层以Object类型数组实现,特点是查找很快 ... -
如何将java.sql.Timestamp转换为java.util.UUID?(How to convert java.sql.Timestamp to java.util.UUID?)[2022-09-26]
首先,您提到的文档是指DataStax Java驱动程序的旧版本,您应该升级到3.0.0版 。 也就是说,DataStax Java驱动程序附带了一个实用程序类com.datastax.driver.core.utils.UUIDs 。 它有三种有用的方法来处理基于时间的UUID: timeBased() ; 为当前时间戳创建新的基于时间的UUID; 此方法生成的时间戳适合作为timeuuid值插入到Cassandra中。 startOf(long)和endOf(long) :这些方法分别为给定时间戳提供最 ... -
coldfusion.util.Key内存泄漏 - 结构键问题?(coldfusion.util.Key Memory Leak - Issue with Structure Keys?)[2022-04-19]
不是一个理想的解决方案,但在Adobe内部修复内存泄漏之前,您可以访问coldfusion.util.Key对象上的私有成员ConcurrentHasMap并手动清除它。 我们已经设置了一个计划任务来执行这个每晚,然后立即做一个GC。 将其编译为JAR文件,并将其放在ColdFusion类路径的某个位置。 import coldfusion.util.Key; import java.lang.reflect.Field; import java.util.Map; import java.util.con ... -
读取已在以下DSE版本中修复的UUID类型存在已知问题:4.7.4,4.8.0 单通道查询不适用于UUID,TimeUUID,Inet,Decimal和Varint类型。 (DSP-6443) 请参阅以下DSE4.8发行说明 There is a known issue with reading UUID types that's been fixed in the following DSE releases: 4.7.4, 4.8.0 Single pass queries do not work wi ...
-
在java util类中使用BASE64的SHA1不会生成正确的密码(SHA1 with BASE64 in java util class does not generate correct password)[2022-08-30]
从数英里之外可以看到SHA1的比赛。 像这样更改代码: -SHA1.reset(); +MessageDigest SHA1= (MessageDigest) OminitureWSUtil.SHA1.clone(); 重置不是你需要的; 克隆适用于此类情况。 顺便说一句,在类init(static {})中抛出任何异常会导致类和部分引用该类的任何其他类(因此整个[web]应用程序)。 这是一个不好的做法,因为异常(java.lang.ExceptionInInitializerError)可能会被困在某 ... -
我确实理解为什么Google Api JSON解析器试图将UUID解析为原语,但至少我找到了解决此问题的方法。 在我的模型类中,我将字段保存为UUID,但更改了getter以返回String,现在它看起来像这样: public String getId() { return id.toString(); } 它已经为我解决了这个问题。 I do understand why Google Api JSON parser was attempting to parse UUID as prim ...
-
在XSLT中调用Java方法(Calling Java Methods in XSLT)[2022-11-10]
请参阅http://saxonica.com/documentation/index.html#!extensibility ,如果您想使用Saxon 9并具有该功能(称为反射扩展功能),则需要PE或EE许可证。 See http://saxonica.com/documentation/index.html#!extensibility, if you want to use Saxon 9 and have that feature (called reflexive extension functio ... -
Java UUID生成(Java UUID generation)[2023-08-17]
操作系统将生成的UUID保留从机器中混合信息以及时间信息的权利。 (事实上,早期的Microsoft UUID生成器会获取网卡信息,这实际上非常不安全,因为可以从生成的UUID中支持它!)。 所以使用你最喜欢的UUID生成器是不合适的。 你可以做的是基本上增强用于创建哈希码的方法,将其扩展到128位。 将该字节数组转换为UUID格式,您就完成了。 The UUID that an operating system will generate reserves the right to blend in in ... -
编辑:此解决方案需要PostgreSQL 8.4或更高版本,相应的JDBC驱动程序8.4-703或更高版本和Hibernate 3.6(对于内置的pg-uuid类型,自定义UserType应该适用于以前的Hibernate版本) 刚刚发现您不需要自定义UserType来将java.util.UUID映射到PostgreSQL uuid 。 从Hibernate 3.6开始,您可以使用内置类型pg-uuid ,这是org.hibernate.type.PostgresUUIDType的快捷方式(请参阅有关基本 ...