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

生成长类型的UUID

尚嘉勋
2023-03-14
问题内容

请给我示例代码生成UUIDlong,而无需使用时间戳Java类型。

谢谢


问题答案:

实际的UUID是128位。长为64位。

这不只是脚手架。UUID代表 通用 唯一IDentifier。

已建立的UUID方案的“通用唯一性” 基于:

  • 编码MAC地址和时间戳,
  • 编码DNS名称和时间戳的哈希,或者
  • 使用122位随机数…足够大,发生碰撞的可能性非常小。

对于64位,根本没有足够的位用于“通用唯一性”。例如,生日悖论意味着如果我们有许多计算机生成随机的64位数字,则潜在可检测到的冲突的可能性将足够大,值得关注。

现在,如果您只想要一个UID(而不是UUID),那么只要您采取措施防止序列重复,任何64位序列生成器都可以完成此工作。(如果序列重复,则这些ID在时间上不是唯一的;即,随着时间的流逝,给定的ID可能表示不同的实体。)



 类似资料:
  • 将Android Studio升级到4.0版本后,在“gradle-wrapper.properties”中:

  • 如何为动态创建的函数声明泛型类型? 我如何在中使用并传递? < code>useFoo的预期用法

  • 我在父类和子类中都有构建器。父对象有一个抽象生成器和一个扩展抽象生成器的具体生成器。子级有一个扩展父级抽象生成器的抽象生成器和一个扩展子级抽象生成器的具体生成器。原因是父级的setter返回当前的Builder类。我有一些方法返回类自己的抽象构建器类型,我想将其称为父抽象类型(调用它的父方法)。我所能做的就是

  • 这是一个至少为64 bit的整数类型(译注:实际宽度依赖于具体的实现平台),例如: long long x = 9223372036854775807LL; 不过,不要想当然地认为存在long long long或者将long拼写为short long long。 (译注:如同J. Stephen Adamczyk在参考文献中所言,”long long”是一个晦涩的拼写64-bit整数类型的方式

  • 试图用Joda DateTimes生成JooQ POJOs,我遇到了一些问题。POJO使用默认的java.sql从生成器中生成。时间戳值,而不是日期时间。 代码如下。 Create Table(此处时间戳字段的名称已更改)希望确保我没有命中构建系统中的某个缓存。此名称仍应与下面的正则表达式匹配。 转换类——基于文档。 Jooq配置XML。基于文档(感谢您捕获我的表达式/表达式错误Luke)! 创建

  • 注:内容翻译自官网文档 Language Guide (proto3) 中的 Generating Your Classes 一节 为了生成Java, Python, C++, Go, Ruby, JavaNano, Objective-C, 或者 C# 代码, 需要处理定义在.proto文件中的消息类型, 需要在.proto文件上运行protocol buffer编译器protoc. 如果你没有