随机产生序列号

package Test;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/*
 * 生成序列号
 * @author huifeidexiaobenzhu
 * @time 2014-11-27
 */
public class CreateSeriaNo {
	private static Map<String,String> map=new HashMap<String,String>();
	private static String STATNUM="000001";

	/**
	 * 获取年月日
	 * @return
	 */
	public String getTime(){
		Calendar cal=Calendar.getInstance();
		cal.setTime(new Date());
		DateFormat df=new SimpleDateFormat("yyyyMMdd");
		return df.format(cal.getTime());
	}

	/**
	 * 判断序号是否到了最后一个
	 * @param s
	 * @return
	 */
	public String getLastSixNum(String s){
		String rs=s;
		int i=Integer.parseInt(rs);
		int f=(int) (Math.random()*100000);
		i++;
		rs=""+f;
		for(int j=rs.length();j<6;j++){
			rs="0"+rs;
		}
		return rs;
	}

	/**
	 * 产生不重复的号码  枷锁
	 * @return
	 */
	public synchronized String getNum(){
		String yearAMon=getTime();
		String last6Num=map.get(yearAMon);
		if(last6Num==null){
			map.put(yearAMon, STATNUM);
		}else{
			map.put(yearAMon, getLastSixNum(last6Num));
		}
		return yearAMon+map.get(yearAMon);
	}

	/**
	 * main测试
	 * @param args
	 */
	public static void main(String[] args) {
		CreateSeriaNo t=new CreateSeriaNo();
		for(int i=0;i<10;i++){
			System.out.println(t.getNum());
		}
	}
}

  

时间: 2024-10-28 15:04:35

随机产生序列号的相关文章

【3次握手4次挥手】-转

TCP((Transmission Control Protocol)传输控制协议,是一个面向连接的协议.在运用此协议进行数据传输前都会进行连接的建立工作(三次握手):当数据传输完毕,连接的双方都会通知对方要释放此连接(四次挥手). 认识TCP标志位 tcp标志位有6种标示: SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) 图解TCP与UDP的三次握

TCP协议三次握手过程深入浅出

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 每一次TCP连接都需要三个阶段:连接建立.数据传送和连接释放.“三次握手”就发生在连接建立阶段. 三次握手(three times handshake) 所谓的“三次握手”即对每次发送的数据量跟踪进行协商使数据段的发送和接收同步,以及根据所接收到的数据量来确定数据发送.接收完毕后何时撤消联系,并建立虚连接. 第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,

TCP协议及TCP正常连接与断开

一.TCP协议简介TCP,全称Transfer Control Protocol,中文名为传输控制协议,它工作在OSI的传输层,提供面向连接的可靠传输服务.TCP的工作主要是建立连接,然后从应用层程序中接收数据并进行传输.TCP采用虚电路连接方式进行工作,在发送数据前它需要在发送方和接收方建立一个连接,数据在发送出去后,发送方会等待接收方给出一个确认性的应答,否则发送方将认为此数据丢失,并重新发送此数据.下面我们来介绍一下TCP的报头结构和相关工作原理:1.TCP报头TCP报头总长最小为20个字

运维网络基础

对于系统运维人员,CCNA的学习难度不是很大,而且学习的周期较短,对于快速成为一个系统运维工程师中,网络搞的最好的,就足够了.如果时间精力有限,建议学习一下知识,作为步入网络知识的基石. 网络基础知识: n 涉及到网络的发展历程,网络的一些名词概念,路由,交换介绍 n OSI七层模型的介绍 n TCP/IP协议簇的简介,包含TCP/IP三次握手和四次挥手的过程 n VLSM可变长子网的概念 第1章 初识网络 网络的知识体系是一个庞大的体系,涉及到路由交换.安全.无线.语言.数据中心等多个方面,所

提升逼格,无论是运维还是开发都要知道的网络知识9/(三)

TCP/IP协议簇(DoD参考模型) 用于简化OSI层次,以及相关的标准. ² 传输控制协议(tcp/ip)族是相关国防部(DoD)所创建的,主要用来确保数据的完整性及在毁灭性战争中维持通信 ² 是由一组不同功能的协议组合在一起构成的协议簇 ² 利用一组协议完成OSI所实现的功能 ====================TCP / IP=====================应用层:    它只负责产生相应格式的数据  ssh ftp nfs cifs dns http smtp pop3 -

TCP协议的三次握手过程分析

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 每一次TCP连接都需要三个阶段:连接建立.数据传送和连接释放.“三次握手”就发生在连接建立阶段. 三次握手(three times handshake) 所谓的“三次握手”即对每次发送的数据量跟踪进行协商使数据段的发送和接收同步,以及根据所接收到的数据量来确定数据发送.接收完毕后何时撤消联系,并建立虚连接. 第一次握手:主机A发送位码为syn=1,随机产生seq number=随机序列的数据包到服务器,主机B

python标准库学习-random

想想这么多年,也是没有好好梳理一下自己的知识体系,以至于总是会有书到用时方恨少的遗憾. 最近既然有学习的动力,干脆就趁着这份工作不是特别忙的机会,写一点东西吧,也理理自己的逻辑思维能力. python有哪些库? 这个问题呢可以参照http://blog.csdn.net/python_wangjunji/article/details/8689297这篇博文来看. 当然咯,首先要先推荐一个可厉害的学习程序:Dash.学编程必备查询库,各种语言,专治"我要看源码病". 那第一篇呢,我就先

安装包制作工具 SetupFactory 详解

Setup Factory 是一个强大的安装程序制作工具.提供了安装制作向导界面,即使你对安装制作不了解,也可以生成专业性质的安装程序.可建立快捷方式,也可直接在 Windows 系统的注册表加入内容,还能在 Win.ini 和 System.ini 内加入设定值,更可以建立反安装选项等等.它内附的向导可以一步步的带领您做出漂亮又专业的安装程序. 本篇通过一个WinFrom项目制作安装包程序过程详细介绍其使用方法. 下面截图中使用的 SetupFactory版本为 V9.0.3. 0 汉化版.网

第六周课堂总结

第1章 操作符 1.1测试文件 格式 [ 操作符 文件或目录 ] 操作符: -d:测试是否为目录,是则为真(Directory) -e:测试目录或文件是否存在,存在则为真(Exist) -f:测试是否为文件,是则为真(file) -r:测试当前用户是否有权限读取,是则为真(read) -w:测试当前用户是否有权限写入,是这为真(write) -x:测试当前用户是否可执行该文件,可执行则为真(Excute) 1.2字符串比较 格式 : [ 字符串1 = 字符串2 ] [ 字符串1 != 字符串2