一 哈希码
在Java中,哈希码代表了对象的一种特征,例如我们判断某两个字符串是否==,如果其哈希码相等,则这两个字符串是相等的。其次,哈希码是一种数据结构的算法。常见的哈希码的算法有:
1:Object类的hashCode.返回对象的内存地址经过处理后的结构,由于每个对象的内存地址都不一样,所以哈希码也不一样。
二 Object对象默认的toString()
假如.直接输出一个实例对象,出现一串字符串,代表什么?
测试:
package new_start1; public class Test1 { class Person { public String name; public Person(String n) { this.name=n; } public Person(){} } public static void change(Person a)//改变对象a的name值 { a.name="haha"; } public static void main(String[] args) { Test1 t=new Test1(); Person p=t.new Person("zhangsan"); //实例一个对象p Person a=t.new Person();//又实例一个对象a System.out.println("未赋值前,两者的哈希码是不相同的:"); System.out.println("a.hashCode="+a.hashCode()+" "+"p.hashCode="+p.hashCode()); System.out.println("a.toString()="+a.toString()); System.out.println("p.toString()="+p.toString()); /* 未赋值前,两者的哈希码是不相同的: a.hashCode= p.hashCode= a.toString()=new_start1.Test1$Person@15db9742 p.toString()=new_start1.Test1$Person@6d06d69c */ a=p; System.out.println("赋值后,两者的哈希码相同:"); System.out.println("a.hashCode="+a.hashCode()+" "+"p.hashCode="+p.hashCode()); System.out.println("a.toString()="+a.toString()); System.out.println("p.toString()="+p.toString()); /* 赋值后,两者的哈希码相同: a.hashCode= p.hashCode= a.toString()=new_start1.Test1$Person@6d06d69c p.toString()=new_start1.Test1$Person@6d06d69c */ } }
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/217515.html原文链接:https://javaforall.net
