当前位置: 首页 > 面试题库 >

java.util.UUID.randomUUID()。toString()长度

高迪
2023-03-14
问题内容

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=32char(每个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使用随机或伪随机数生成。



 类似资料:
  • public static UUID randomUUID()静态工厂检索类型4(伪随机生成)的UUID。UUID是使用密码学强的伪随机数生成器生成的。返回:随机生成的UUID 而并没有告诉我什么。我不知道类型4在这个案例中是什么意思。

  • toString 方法 把数组转换为字符串。 语法: arrayObject.toString(); 返回值: arrayObject 的字符串表示。返回值与没有参数的 join() 方法返回的字符串相同。 说明: 当数组用于字符串环境时,JavaScript 会调用这一方法将数组自动转换成字符串。但是在某些情况下,需要显式地调用该方法。 示例: var Arr = [11, 2, 73

  • toString 方法 返回字符串的原始字符串值。 语法: stringObject.toString(); 返回值: stringObject 的原始字符串值。一般不会调用该方法。 异常抛出: 当调用该方法的对象不是 String 时抛出 TypeError 异常。

  • toString 方法 把一个 Number 对象转换为一个字符串,并返回结果。 语法: NumberObject.toString( radix ); 参数说明: radix - 可选。规定表示数字的基数,使 2 ~ 36 之间的整数。若省略该参数,则使用基数 10。但是要注意,如果该参数是 10 以外的其他值,则 ECMAScript 标准允许实现返回任意值。 返回值: 数字的字符串表示

  • toString 方法 把逻辑值转换为字符串,并返回结果。 语法: booleanObject.toString(); 返回值: 根据原始布尔值或者 booleanObject 对象的值返回字符串 "true" 或 "false"。 异常抛出: 如果调用该方法的对象不是 Boolean,则抛出异常 TypeError。 注: 在 Boolean 对象被用于字符串环境中时,此方法会被自动调用。

  • toString 方法 把 Date 对象转换为字符串。 语法: dateObject.toString(); 返回值: dateObject 的字符串表示,使用本地时间表示。 示例: var DATE = new Date(); console.log( DATE.toString() ); 结果: >>> Fri Nov 15 2013 14:51:33 GMT+