package com.sure.test.study;
/**
* @description: 雪花算法demo
* @fileName: SnowflakeIdWorker.java
* @author: Sure
* @createAt: 2021/7/22/022 15:02
* @updateBy: Sure
* @remark:
*/
public class SnowflakeIdWorker {
/** 开始时间截 (这个用自己业务系统上线的时间) */
private final long twepoch = 1575365018000L;
/** 机器id所占的位数 */
private final long workerIdBits = 10L;
/** 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数) */
private final long maxWorkerId = -1L ^ (-1L << workerIdBits);
/** 序列在id中占的位数 */
private final long sequenceBits = 12L;
/** 机器ID向左移12位 */
private final long workerIdShift = sequenceBits;
/** 时间截向左移22位(10+12) */
private final long timestampLeftShift = sequenceBits +
java-雪花算法生成唯一id
最新推荐文章于 2025-09-14 21:58:18 发布
本文档提供了一个使用Snowflake算法在Java中生成唯一ID的示例。Snowflake算法通过结合时间戳、工作机器ID和序列号来确保ID的唯一性。在示例中,详细定义了各个位数的用途,并提供了构造函数和生成下一个ID的方法。

最低0.47元/天 解锁文章
610

被折叠的 条评论
为什么被折叠?



