本文共 1764 字,大约阅读时间需要 5 分钟。
1 开发过程中时间作为一个死循环,经常使用到,适时实地的使用时间这个变量可以解决很多问题。
比如:使用时间作为版本控制的一个顺序主线
在Web开发过程中为了验证Ajax的局部刷新技术,我曾经在页面上通过显示访问页面时留下的时间信息来判断页面是否整体刷新
数据库设计中某些问题时间也可以作为主键来使用
计算机系统中的一些log文件等等都是以时间作为参照来进行管理计算机。
为了能够使文件的文件名达到唯一表示时间作为常见的特殊的变量自然能够为生成标识起到很多的作用。
2 MAC(Media Access Control)地址,或称为 MAC位址、硬件位址,用来定义网络设备的位置。MAC具有全球唯一性,所以也可以作为生成唯一标识的元素
3 随机数可以作为不确定性的标识的生成元素,而且随机数的生成方式相当丰富,可以根据需要,采用不同的算法,不同的随机数的种子标识就可以产生大量的可用来标识的数据。
4 如果是通信设备等方面的表示,可以用到卫星的定位系统,使用经纬度来作为唯一标识的元素。
5 上面都是计算机中常使用的标识元素。生物界这样的标识是相当的多。DNA,指纹等等。人们还可以采用约定的方式来进行标识,不同的标识元素进行相应的组合最终产生唯一标识的信息。
下面是一个使用IP+时间+随机数产生标识。
-
-
-
- import java.text.SimpleDateFormat ;
- import java.util.Date ;
- import java.util.Random ;
- public class IPTimeStamp {
- private SimpleDateFormat sdf = null ;
- private String ip = null ;
-
- public IPTimeStamp(){
-
- }
-
-
- public IPTimeStamp(String ip){
- this.ip = ip ;
- }
-
-
- public String getIPTimeRand(){
- StringBuffer buf = new StringBuffer() ;
- if(this.ip != null){
- String s[] = this.ip.split("\\.") ;
- for(int i=0;i<s.length;i++){
- buf.append(this.addZero(s[i],3)) ;
- }
- }
- buf.append(this.getTimeStamp()) ;
- Random r = new Random() ;
- for(int i=0;i<3;i++){
- buf.append(r.nextInt(10)) ;
- }
- return buf.toString() ;
- }
-
-
- public String getDate(){
- this.sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS") ;
- return this.sdf.format(new Date()) ;
- }
-
-
- public String getTimeStamp(){
- this.sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS") ;
- return this.sdf.format(new Date()) ;
- }
-
-
- private String addZero(String str,int len){
- StringBuffer s = new StringBuffer() ;
- s.append(str) ;
- while(s.length() < len){
- s.insert(0,"0") ;
- }
- return s.toString() ;
- }
-
- public static void main(String args[]){
- System.out.println(new IPTimeStamp("192.168.1.1").getIPTimeRand()) ;
- }
- }
转载地址:http://cowia.baihongyu.com/