雪花id生成工具类SnowflakeIdWorker
`
public class SnowflakeIdWorker {
/**
* 开始时间截 (2015-01-01)
/
private final long twepoch = 1420041600000L;
/*
* 机器id所占的位数
/
private final long workerIdBits = 5L;
/*
* 数据标识id所占的位数
/
private final long datacenterIdBits = 5L;
/*
* 支持的最大机器id,结果是31 (这个移位算法可以很快的计算出几位二进制数所能表示的最大十进制数)
/
private final long maxWorkerId = -1L ^ (-1L << workerIdBits);
/*
* 支持的最大数据标识id,结果是31
/
private final long maxDatacenterId = -1L ^ (-1L << datacenterIdBits);
/*
* 序列在id中占的位数
/
private final long sequenceBits = 12L;
/*
* 机器ID向左移12位
/
private final long workerIdShift = sequenceBits;
/*
* 数据标识id向左移17位(12+5)
/
private final long datacenterIdShift = sequenceBits + workerIdBits;
/*
* 时间截向左移22位(5+5+12)
/
private final long timestampLeftShift = sequenceBits + workerIdBits + datacenterIdBits;
/*
* 生成序列的掩码,这里为4095 (0b111111111111=0xfff=4095)
/
private final long sequenceMask = -1L ^ (-1L << sequenceBits);
/*
* 工作机器ID(0~31)
/
private long workerId;
/*
* 数据中心ID(0~31)
/
private long datacenterId;
/*
* 毫秒内序列(0~4095)
/
private long sequence = 0L;
/*
* 上次生成ID的时间截
*/
private long lastTimestamp = -1L;
}`
__EOF__

本文链接:https://www.cnblogs.com/Sappy/p/17292870.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY