java UUID GUID获得方式的疑问?

烧饼加肉 发布于 2011/08/06 16:28
阅读 3K+
收藏 0

我看一段生成JAVA的GUID,和UUID的代码,生成GUID的就不说了。下面生成UUID的我摘出来:方法如下:

 

  public String toString() {
        //valueAfterMD5是得到的GUID
        String raw = valueAfterMD5.toUpperCase();
        StringBuffer sb = new StringBuffer(64);
        sb.append(raw.substring(0, 8));
        sb.append("-");
        sb.append(raw.substring(8, 12));
        sb.append("-");
        sb.append(raw.substring(12, 16));
        sb.append("-");
        sb.append(raw.substring(16, 20));
        sb.append("-");
        sb.append(raw.substring(20));

        return sb.toString();
    }

通过这个方法可以看到UUID实际上是把GUID的小写字母转成大写字母以后,再加上四个“-”.

因为JAVA得到UUID很方便:

 

UUID uuid = UUID.randomUUID(); 

我在想,是不是得到UUID之后,去悼所有"-",再把大写字母转成小写字母。得到的就是GUID。

请大家给确认一下。

加载中
0
mallon
mallon
其实就是32个字符,中间加-只是为了看起来舒服
0
chunquedong
chunquedong

楼主那个版本的JDK,竟然和我的不一样:

    public String toString() {
	return (digits(mostSigBits >> 32, 8) + "-" +
		digits(mostSigBits >> 16, 4) + "-" +
		digits(mostSigBits, 4) + "-" +
		digits(leastSigBits >> 48, 4) + "-" +
		digits(leastSigBits, 12));
    }

0
烧饼加肉
烧饼加肉

其实,我只想问一下,UUID去悼所有“-”和大写转成小写之后,是不是GUID。

0
随影求是
随影求是
GUID和UUID是同一个概念吧,格式都是 格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”
0
烧饼加肉
烧饼加肉

用ORACLE得到的GUID是32位的:中间没有“—”

0
穿着马甲的鸟
穿着马甲的鸟

根据维基百科,这两个缩写的定义是这样的:

universally unique identifier (UUID) is an identifier standard used in software construction, standardized by the Open Software Foundation (OSF) as part of theDistributed Computing Environment (DCE).

globally unique identifier (GUIDplay /ˈɡɪd/ or /ˈɡwɪd/) is a unique reference number used as an identifier in computer software. The term GUID also is used forMicrosoft's implementation of the Universally Unique Identifier (UUID) standard.

对我所涉及的范围来说,UUID和GUID是完全等同的概念。

0
烧饼加肉
烧饼加肉
谢谢大家,明白了。
返回顶部
顶部