toString
public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂。建议所有子类都重写此方法。
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
getClass().getName() + '@' + Integer.toHexString(hashCode())
返回:
该对象的字符串表示形式。
//先看不加参数的源码public static UUID randomUUID() {
SecureRandom ng = Holder.numberGenerator
byte[] randomBytes = new byte[16]
ng.nextBytes(randomBytes)
randomBytes[6] &= 0x0f /* clear version */
randomBytes[6] |= 0x40 /* set to version 4 */
randomBytes[8] &= 0x3f /* clear variant */
randomBytes[8] |= 0x80 /* set to IETF variant */
return new UUID(randomBytes)//看到这里没,其实也是调用的带参数的,只不过
//所带参数的是给你随机出来的
}
//再看带参数的
public static UUID nameUUIDFromBytes(byte[] name) {
MessageDigest md
try {
md = MessageDigest.getInstance("MD5")
} catch (NoSuchAlgorithmException nsae) {
throw new InternalError("MD5 not supported")
}
byte[] md5Bytes = md.digest(name)//这里就是对给的byte[]参数进行md5运算之后再进行计算UUID
md5Bytes[6] &= 0x0f /* clear version */
md5Bytes[6] |= 0x30 /* set to version 3 */
md5Bytes[8] &= 0x3f /* clear variant */
md5Bytes[8] |= 0x80 /* set to IETF variant */
return new UUID(md5Bytes)
}
UUID uuid=UUID.randomUUID()System.out.println(uuid.toString())
UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OSF) 的组织应用在分布式计算环境 (Distributed Computing Environment, DCE) 领域的一部分。