java.util.UUID.randomUUID()。toString()length

java.util.UUID.randomUUID()。toString()长度总是等于36吗?

我无法找到相关信息。 这里只说以下内容:

public static UUID randomUUID()静态工厂,用于检索类型4(伪随机生成的)UUID。 使用加密强伪随机数生成器生成UUID。 返回:随机生成的UUID

那种type 4没有告诉我什么。 我不知道在这种情况下4型是什么意思。

java.util.UUID.randomUUID()。toString()长度总是等于36吗?

的。

UUID实际上是128位值(2长)。 要将128位表示为hex字符串,将有128/4=32字符(每个字符长度为4位)。 在字符串格式中,它还包含4( - ),这就是长度为36的原因。

例如: 54947df8-0e9e-4471-a2f9-9af509fb5889

32hexchar + 4连字符char = 36 char。 所以长度总是一样的。

更新:

我不知道在这种情况下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使用随机或伪随机数生成。