Java面试题更新 2026-08-05

请列举 Java 中 Object 类所包含的主要方法,并分别说明它们各自的功能与典型使用场景。

后端开发技术原理Java

考察说明

考察对 Java 根类 Object 中核心方法的掌握程度,包括其功能、重写约定与常见用途。

回答思路

  1. 【回答框架 1】Object 类是 Java 中所有类的直接或间接父类,其定义的方法适用于所有对象。常见方法包括:getClass()、hashCode()、equals()、clone()、toString()、notify()/notifyAll()/wait()、finalize()(已废弃)等。
  2. 【回答框架 2】equals() 用于比较两个对象是否'相等',默认实现是比较引用地址,通常建议重写以比较对象内容;重写时必须同时覆盖 hashCode(),以保证哈希容器(如 HashMap)的正常行为。
  3. 【回答框架 3】hashCode() 返回对象的哈希码,是哈希表数据结构的核心依据。如果两个对象 equals() 相等,则 hashCode() 必须相等;反之不要求,但良好的散列分布可提升性能。
  4. 【回答框架 4】toString() 返回对象的字符串表示,默认输出类名和哈希码的无符号十六进制形式,常用于日志打印和调试;getClass() 返回对象的运行时类,常用于反射。
  5. 【回答框架 5】clone() 用于创建对象的浅拷贝,需实现 Cloneable 接口并重写为 public,否则抛 CloneNotSupportedException。
  6. 【关键点 1】Object 是所有类的根,主要方法包括 equals、hashCode、toString、getClass、clone、wait、notify、notifyAll、finalize。
  7. 【关键点 2】equals 与 hashCode 必须共同重写,equals 相等的对象 hashCode 必须一致。
  8. 【关键点 3】clone 是浅拷贝,需实现 Cloneable 并重写为 public。
  9. 【关键点 4】wait、notify、notifyAll 必须在同步上下文中调用,用于线程协调。
  10. 【关键点 5】finalize 已废弃,资源清理应使用 try-with-resources 或显式关闭。
  11. 【易错点 1】只重写 equals 而不重写 hashCode,会导致 HashMap 等集合出现重复元素或无法正确查找到。
  12. 【易错点 2】clone 方法如果不实现 Cloneable 接口,调用时会抛出 CloneNotSupportedException。
  13. 【易错点 3】在非同步代码块中调用 wait/notify 会抛出 IllegalMonitorStateException。