共计 1111 个字符,预计需要花费 3 分钟才能阅读完成。
package com.itheima.demo03.hashCode;
/*
哈希值: 是一个十进制的整数, 由系统随机给出 (就是对象的地址值, 是一个逻辑地址, 是模拟出来得到地址, 不是数据实际存储的物理地址)
在 Object 类有一个方法, 可以获取对象的哈希值
int hashCode() 返回该对象的哈希码值。hashCode 方法的源码:
public native int hashCode();
native: 代表该方法调用的是本地操作系统的方法
*/
public class Demo01HashCode {
public static void main(String[] args) {
//Person 类继承了 Object 类, 所以可以使用 Object 类的 hashCode 方法
Person p1 = new Person();
int h1 = p1.hashCode();
System.out.println(h1);//1967205423 | 1
Person p2 = new Person();
int h2 = p2.hashCode();
System.out.println(h2);//42121758 | 1
/*
toString 方法的源码:
return getClass().getName() + "@" + Integer.toHexString(hashCode());
*/
System.out.println(p1);//com.itheima.demo03.hashCode.Person@75412c2f
System.out.println(p2);//com.itheima.demo03.hashCode.Person@282ba1e
System.out.println(p1==p2);//false
/*
String 类的哈希值
String 类重写 Obejct 类的 hashCode 方法
*/
String s1 = new String("abc");
String s2 = new String("abc");
System.out.println(s1.hashCode());//96354
System.out.println(s2.hashCode());//96354
System.out.println("重地".hashCode());//1179395
System.out.println("通话".hashCode());//1179395
}
}
package com.itheima.demo03.hashCode;
public class Person extends Object{
// 重写 hashCode 方法
@Override
public int hashCode() {return 1;}
}
正文完
发表至: java
2019-07-01