java.util.UUID.randomUUID()。toString()长度
问题内容:
java.util.UUID.randomUUID()。toString()的长度是否始终等于36?
我找不到有关的信息。这里只说以下几点:
公共静态UUID
randomUUID()静态工厂,用于检索类型4(伪随机生成的)UUID。使用加密强度高的伪随机数生成器生成UUID。返回:随机生成的UUID
那type 4
什么也没告诉我。我不知道类型4在这种情况下意味着什么。
问题答案:
java.util.UUID.randomUUID()。toString()的长度是否始终等于36?
是!! 它是。
甲UUID
实际上是一个128位的值(2长)。为了将128位表示为十六进制字符串,将有一个128/4=32
char(每个char为4位长)。字符串格式还包含4(-
),这就是长度为36的原因。
例: 54947df8-0e9e-4471-a2f9-9af509fb5889
32个十六进制字符+ 4个连字符= 36个字符。因此长度将始终相同。
更新:
我不知道第4种情况是什么意思?
仅供参考:有几种生成UUID的方法。在这里,类型4表示此uuid是使用随机数或伪随机数生成的。从Wiki-
Universally_unique_identifier#Versions:
版本号
对于版本1和2,标准中定义了五个“版本”,在特定的用例中,每个版本可能比其他版本更合适。版本由字符串表示中的M表示。
版本1 UUID是根据时间和节点ID(通常是MAC地址)生成的;
版本2 UUID由标识符(通常是组或用户ID),时间和节点ID生成;
版本3和版本5 通过对名称空间标识符和名称进行哈希处理来生成确定性UUID。
和 版本4点 的UUID使用随机或伪随机数生成。