「java对象的唯一标识」java获取客户端唯一标识

博主:adminadmin 2022-11-27 04:39:06 63

今天给各位分享java对象的唯一标识的知识,其中也会对java获取客户端唯一标识进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

使用java.util.UUID生成唯一标识,为什么生成唯一标识的方法有些还需要参数?

//先看不加参数的源码

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);

    }

JAVA中,String类中的hashCode()方法有什么作用呢?

hash从意义上来说应该是实现值的比较。

hashCode值与

对象引用

没有必然联系。在java中,值相同的两个字符串不一定是同个对象。比如你上面的a和b就是两个不同的对象。

字符串的hash值是根据字符串的值计算的,相同值的字符串对象hash值一定相同,具体的计算方法在jdk的文档中有描述.

每个java对象都有一个唯一的标识,object类中的hash方法就是直接返回对象的这个内部id号,与string的hash方法是不同的,object的hash方法能够用来区分不同的对象.因为原始的object对象没有任何有意义的值可用来计算哈希

java的jvm在执行java程序的时候,会给新建的对象分配一个唯一的标识,请问这个唯一标识怎么获取阿???

可以使用对象的toString()方法,回返回一个字符串,字符串后半部分的哈希码就是唯一的。

toString

public String toString()返回该对象的字符串表示。通常,toString 方法会返回一个“以文本方式表示”此对象的字符串。结果应是一个简明但易于读懂。建议所有子类都重写此方法。

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:

getClass().getName() + '@' + Integer.toHexString(hashCode())

返回:

该对象的字符串表示形式。

java对象的唯一标识的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java获取客户端唯一标识、java对象的唯一标识的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-27,除非注明,否则均为首码项目网原创文章,转载请注明出处。