HASH值和地址是两码事:
哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。HASH是根据文件的内容的数据通过逻辑运算得到的数值, 不同的文件得到的HASH值是不同的, 所以你可以自己修改返回的HASH值。
地址是变量在内存中储存的地方,是不可控的。当你定义一个变量如:int a; 内存就自动分配一个地址用来记录这个变量。该地址由计算机分配,不是你能改变的。在java中已经没有了指针的概念,所以不讨论地址。在C中求地址是&符号,如&a,就可以知道变量a在计算机中分配的地址值。
对象引用与对象的区别:
String str=new String("str");把这句话拆开:
String str; //这就是创建了一个String类对象的引用,也就是说这个变量str可以指向任何String对象
str= new String("str"); //这就是创建一个普通的String对象,并且使它被str变量引用,当然,你可以改变str引用的类,只要还是String类就OK了。
|