public class MinuteCounter {
private static final int MASK = 0x7FFFFFFF;
private final AtomicInteger atom;
public MinuteCounter() {
atom = new AtomicInteger(0);
public final int incrementAndGet() {
return atom.incrementAndGet() & MASK;
public int get() {
return atom.get() & MASK;
public void set(int newValue) {
atom.set(newValue & MASK);
有时我们不依赖于数据库中自动递增的字段产生唯一ID,比如多表同一字段需要统一一个唯一ID,这时就需要用程序来生成一个唯一的全局ID。UUID从Java 5开始, UUID 类提供了一种生成唯一ID的简单方法。UUID是通用唯一识别码 (Universally Unique Identifier)的缩写,UUID来源于OSF(Open Software Foundation,开源软件基金会)的D...
一般有时候我们需要生成唯一主键id,如果数据库是mysql我们可以使用主键自增,如果是oracle我们可以创建触发器或者序列,如果不借助数据库我们也可以在java层面自己生成唯一主键。
代码如下:
生成唯一主键
格式:时间+随机数
public static synchronized String genUniqueKey() {
* Guangdong Ocean University, Zhanjiang, GuangDong, China.
import java.lang.management.ManagementFactory;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.secu...
public class UniqueIdGenerator {
public static String generateUniqueId() {
UUID uuid = UUID.randomUUID();
String uniqueId = uuid.toString().replaceAll("-", "");
return uniqueId.substring(0, 13);
这个方法将生成一个唯一的13位数字id,可以在Java应用程序中使用。