编程开发 > JAVA > 文章内容

java基础知识总结(102)

2016-6-16编辑:ljnbset

Object

 1) Java 类默认继承于Object! -> 啥都是东西

   继承了Object 的属性和方法

   如: toString(),  hashCode(), equals()

 2) toString() 方法, 经常有系统默认调用, 活动当前对象的文本描述, Object默认返回: 全限定名@hashCode

       建议覆盖为: 当前对象的文本描述, (看着办)

 3) equals 是用来比较两个对象是否相等的方法。区别:引用相等 与 对象相等引用值相等: 使用 “==”

    对象的内容相等: .equals() 方法

  equals在Object类中声明,默认的比较规则是:比较引用 建议覆盖,实现对象的比较(比较对象的状态,就是比较对象 的数据)。

* 覆盖规则:

  a 自反性:对于任何非空引用值 x,x.equals(x) 都应返回 true。

  b 对称性:对于任何非空引用值 x 和 y,当且仅当 y.equals(x) 返回 true 时,x.equals(y) 才应返回 true。

  c 传递性:对于任何非空引用值 x、y 和 z,如果x.equals(y) 返回 true,并且 y.equals(z) 返回

     true,那么 x.equals(z) 应返回 true。

  d 一致性:对于任何非空引用值 x 和 y,多次调用x.equals(y) 始终返回 true 或始终返回 false,前提是对象上 equals 比较中所用的信息没有被修改。

  e 对于任何非空引用值 x,x.equals(null) 都应返回false。

 4) hashCode()

  A hashCode()方法要与equals方法一同覆盖

   a 当两个对象equals比较为true时候,这两个对象应该具有相同的hashCode()值

   b 当两个对象equals比较为false时候,这两个对象应该具有尽可能不相同的hashCode()值

   c hashCode() 值要稳定(一致性),一个对象创建以后就不应该再变化

  B 默认的hashCode() 值是当前堆对象地址转换的一个整数这个整数不是内存地址。

  C 一般使用对象的OID值作为hashCode的值。

OID 对象的唯一编号,在工程项目中一般采用数据库来 生成OID,也就是数据库中的“主键”

java基础知识总结(101)

热点推荐

登录注册
触屏版电脑版网站地图