0 引言

  Object类是类层次结构的根,Java中所有的类从根本上都继承自这个类。Object类是Java中唯一没有父类的类。

  其他所有的类,包括标准容器类,比如数组,都继承了Object类中的方法。

1 Object类中的方法

1.1 equals方法

  这个方法返回Bool型,用于判断两个引用是否指向同一个对象,其等价于运算符“==”,只有当继承Object的类重写equals方法之后,才可以说equals方法与==不同。

  equals方法具有的特点: 

  自反性(reflexive):任何非空引用x,x.equals(x)返回为true。

  对称性(symmetric):任何非空引用x和y,x.equals(y)返回true当且仅当y.equals(x)返回true。

  传递性(transitive):任何非空引用x和y,如果x.equals(y)返回true,并且y.equals(z)返回true,那么x.equals(z)返回true。

  一致性(consistent):两个非空引用x和y,x.equals(y)的多次调用应该保持一致的结果,(前提条件是在多次比较之间没有修改x和y用于比较的相关信息)。

  约定:对于任何非空引用x,x.equals(null)应该返回为false。

1.2 hashCode方法

  这个方法返回一个整型值,表示为某个对象的地址。

  hashCode的一般性契约:

  1. 当equals比较的信息没有被修改,那么同一个对象多次调用hashCode方法返回同一个值

  2. 如果equals()判断两个对象相等,那么它们的hashCode()方法应该返回同样的值。

  3. 并没有强制要求如果equals()判断两个对象不相等,那么它们的hashCode()方法就应该返回不同的值。即,两个对象用equals()方法比较返回false,它们的hashCode可以相同也可以不同。但是,应该意识到,为两个不相等的对象产生两个不同的hashCode可以改善哈希表的性能。

1.3 toString方法

  这个方法返回该对象的字符串表示。当打印引用,如调用System.out.println()时,会自动调用对象的toString()方法。

1.4 wait/notify/notifyAll方法

  1. wait方法:当前线程等待,直到在其他线程上调notify/notifyAll方法。调用后,当前线程立即阻塞,直至被唤醒;

  2. notify/notifyAll:唤醒在此对象监视器上等待的单个线程/所有线程。调用后,所在线程不会释放所持有的锁,直到所在同步代码中代码执行完毕,才释放锁。

1.5 finalize方法

  JVM准备对此对象所占用的内存空间进行垃圾回收前,将被调用。

最新文章

  1. 今天无意发现jquery的一个以前的误导
  2. Unity3D教程:茄子童萌會
  3. boost multi_index
  4. WPF Touch操作滚动条,Window弹跳
  5. 使用VirtualBox自带管理工具命令为虚拟磁盘扩展空间
  6. Android反编译工具的使用-Android Killer
  7. 解决linux crontab PHP fgetcsv 读取中文数据为空问题
  8. mac 下修改Hosts文件
  9. Silverlight动态设置WCF服务Endpoint
  10. itextsharp去掉PDF加密
  11. javascript 库
  12. Hadoop上传文件的报错
  13. 在阿里云ECS(CentOS6.5)上安装redis
  14. Python数据分析(二): Numpy技巧 (4/4)
  15. PHP连接mysql数据库进行增删改查--删除
  16. and,or
  17. Spark-SQL之DataFrame操作
  18. 微信小程序制作家庭记账本之四
  19. Oracle数据库返回字符类型-1~1的结果处理
  20. 063——VUE中vue-router之重定向redirct的使用

热门文章

  1. 洛谷P3165 [CQOI2014]排序机械臂 Splay维护区间最小值
  2. IOS - Ask for Application Badge permission ios8
  3. Project Euler 28 Number spiral diagonals
  4. ftp服务器在linux中安装
  5. Problem 9
  6. 原生js,时间日期简单应用。
  7. 环境搭建Selenium2+Eclipse+Java+TestNG_(一)
  8. ElasticSearch[v6.2] 在实际项目中的应用
  9. js/jquery 判断支持touchstart
  10. CF409C Magnum Opus