CODE大全
版权声明:本文为博主原创文章,未经博主允许不得转载。

Java 使用 UUID 生成唯一不重复的订单编号的方法

发布时间:『 2018-07-12 14:24』  博客类别:编程语言  阅读(868) 评论(0)

最近天热,很少有人跳槽!但我却反其道而行,因为在跳槽人最少的时候机会才多!


目前我已经收到了两家公司的 offer,所以这个时段的工作还是挺好找的。


到了我这个年龄,我最看中的是稳定。因为年龄大了不在可能频繁跳槽了,所以选择一个好公司,一干就是好几年,扎下根去!


今天上午来一家公司复试,其中一位夏同学在做生成订单编号的功能。我给他指点了一下可以简单的使用 uuid 来做,但是 uuid 产生的是一个不重复的字符串。用来当做订单编号,显然不太合适。但是我们可以变个魔术,来让它变成一组数字。


原理其实很简单,就是借助 java 中 String 类的 hashcode() 方法即可。整个代码实现如下所示:

public static String createOrderId() {  
	int machineId = 1;//最大支持1-9个集群机器部署  
	int hashCodeV = UUID.randomUUID().toString().hashCode();  
	if(hashCodeV < 0) {//有可能是负数  
		hashCodeV = - hashCodeV;  
	}  
	// 0 代表前面补充0       
	// 4 代表长度为4       
	// d 代表参数为正数型  
	return machineId+String.format("%015d", hashCodeV);  
}

通过我对多线程的测试,结果是并发在2000左右都没有问题,可以放心的使用。


——— 全文完 ———
如有版权问题,请联系532009913@qq.com。
关键字:   java     UUID     订单编号     线程安全     高并发  
评论信息
暂无评论
发表评论
验证码: 
Powered by CODE大全 | 鄂ICP备14009759号-2 | 网站留言 Copyright © 2014-2016 CODE大全 版权所有