#笔记#圣思园 JavaSE 第28讲——Object类详解
2015-04-12 20:44
316 查看
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值
相关文章推荐
- #笔记#圣思园 JavaSE 第15讲——方法参数传递详解
- #笔记#圣思园 JavaSE 第55讲——泛型详解(2)
- #笔记#圣思园 JavaSE 第53讲——泛型详解(1)
- #笔记#圣思园 JavaSE 第14讲——面向对象详解
- #笔记#圣思园 JavaSE 第34讲——Arrays类解析
- #笔记#圣思园 JavaSE 第27讲——访问控制符详解
- #笔记#圣思园 JavaSE 第41讲——LinkedList源代码剖析
- #笔记#圣思园 JavaSE 第17讲——继承剖析
- #笔记#圣思园 JavaSE 第21讲——多态详解 抽象类
- #笔记#圣思园 JavaSE 第8讲——理解面向对象程序设计
- #笔记#圣思园 JavaSE 第59讲——类型安全的枚举
- #笔记#圣思园 JavaSE 第6讲——流程控制语句
- #笔记#圣思园 JavaSE 第39讲——ArrayList源代码剖析
- #笔记#圣思园 JavaSE 第72讲——JUnit框架
- #笔记#圣思园 JavaSE 第4讲——运算符
- #笔记#圣思园 JavaSE 第45讲——Set接口,hashCode方法,equals方法
- #笔记#圣思园 JavaSE 第9讲——面向对象之 封装 encapsulation
- #笔记#圣思园 JavaSE 第7讲——流程控制语句 while、do while、for循环、break、continue
- #笔记#圣思园 JavaSE 第23讲——static | final使用陷阱
- #笔记#圣思园 JavaSE 第48讲——Map映射