1.java.lang.Object类
java.lang包在使用时无需显式导入,编译时由编译器自动导入
2.API(Application Programming Interface)——应用编程接口
3.toString()方法
当打印引用时,实际上会打印出引用所指向对象的toString()方法的返回值,因为每个类都直接或间接的继承自Object这个类,而Object类中定义了toString(),因此每个类都有toString()这个方法
4.关于进制的表示:16进制,逢16进1.
16进制的数字包括:0~9,A~F(从0到15)
5.equals()方法
该方法定义在Object类当中,因此java中每个类都具有这个方法
判断当前调用equals()方法的引用,与传递进来的引用是否相等。即这两个引用是否指向同一个对象
对于Object类的equals()方法来说,它等价于 == 。
return(this == obj)-----------------判断“当前对象”【谁调用的equals方法,谁就是当前对象】与传进来的对象的引用是否相等
判断调用equals方法的对象跟传进来的引用代表的对象他们两个指向的地址是否相等,判断两个对象是不是同一个对象
Object类的equals方法的特点:
(1)自反性:x.equals(x)返回true
(2)对称性:x.equals(y)返回true,y.equals(x)返回true
(3)传递性:x.equals(y)返回true,且y.equals(z)返回true,那么x.equals(z)返回true
(4)一致性:x.equals(y)的第一次调用为true,那么以后的调用都为true,前提是在比较之间没有对x和y进行修改
(5)对于非空引用x,x.equals(null)返回false
通常,在重写equals方法的时候,也要重写hashCode方法。相等的对象,有相等的hashCode
6.hashCode方法——public int hashCode()
为了更好的使用java.lang.Hashtable这个类,所以提供了hashCode方法
满足什么条件的时候使用hashCode?
(1)在一个java程序执行过程中,如果对象信息不发生变化,那么hashCode值总是一样的
(2)如果两个对象通过equals方法进行比较的结果是true,那么这两个对象的hashCode值必须相同
(3)如果两个对象通过equals方法进行比较的结果是false,那么这两个对象的hashCode的值(可以相同可以不同),但是,如果不同,则可以提高应用的性能。
对于Object类的hasCode方法来说,不同的对象返回不同的hashCode值,Object类的hashCode值表示对象地址。。。。。因为toString方法返回:类名@16进制的hashCode值