在我们日常开发中,经常要使用Java给我们提供的工具类辅助我们编程
java.lang.Object
这个类是Java中所有类的父类,所有类都默认继承自他。接下来看看哪些方法可以用到
1.hashCode() ->这是一个本地方法,返回一个int值,当对象被创建时都会通过算法分配一个唯一的int值作为对象的标识,称为哈希码。这个方法的返回的就是对象的哈希码
public native int hashCode();
2.getClass() ->这是一个本地方法,返回的是对象的字节码对象,可以通过字节码获取类的成员。
public final native Class<?> getClass();
2.toString() -> 返回对象所在类的"包名.类名",在拼接上@和对象哈希码的16进制
public class Main {
public static void main(String[] args) {
Test1 test1 = new Test1();
System.out.println(test1.hashCode());
System.out.println(test1.toString());
}
}
执行结果:
460141958
Util.Test1@1b6d3586
public String toString() {
return getClass().getName() + "@" + Integer.toHexString(hashCode());
}
3.equals() ->比较两个对象是否一样
public class Main {
public static void main(String[] args) {
Test1 test1 = new Test1();
Test1 test2 = test1;
Test1 test3 = new Test1();
System.out.println(test1.equals(test2));
System.out.println(test1.equals(test3));
}
}
执行结果:
true
false
public boolean equals(Object obj) {
return (this == obj);
}
从源码可以看到,Object自带的equals方法和 == 比较没有区别,而==在使用的时候比较的是引用的内存地址
4.其他方法:wait(),notify(),notifyAll()属于线程相关方法