Java 如何实现生成有序且唯一的id

2025-03-23 01:23:13
推荐回答(5个)
回答1:

毫秒:System.currentTimeMillis(),这个毫秒其实就是自1970年1月1日0时起的毫秒数。
纳秒:System.nanoTime(),这个毫秒其实就是自1970年1月1日0时起的纳秒数。
产生的数据都是唯一的,且有序的,都可以做成序列~

回答2:

可以通过当前时间来生成有序唯一的id

回答3:

  this.id = UUID.randomUUID().toString();

  使用UUID就可以了
  UUID由以下几部分的组合:
  (1)当前日期和时间,UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。
  (2)时钟序列。
  (3)全局唯一的IEEE机器识别号,如果有网卡,从网卡MAC地址获得,没有网卡以其他方式获得。
  UUID的唯一缺陷在于生成的结果串会比较长。关于UUID这个标准使用最普遍的是微软的GUID(Globals Unique Identifiers)。在ColdFusion中可以用CreateUUID()函数很简单地生成UUID,其格式为:xxxxxxxx-xxxx- xxxx-xxxxxxxxxxxxxxxx(8-4-4-16),其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。而标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx (8-4-4-4-12),可以从cflib 下载CreateGUID() UDF进行转换。

回答4:

时间+流水

回答5:

id生成策略,建议你看看hibernate