跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

Java Object 类的方法有哪些

Java Object 类是所有类的根类,包含 13 个核心方法。主要功能包括对象创建、类型获取、内容比较、哈希计算、对象克隆、线程通信及资源清理。equals 与 hashCode 需配合重写,finalize 方法在 JDK 1.9 后已过时。常见面试考点涉及 equals 与 == 区别、wait 与 sleep 差异以及 HashMap 实现原理。

星落发布于 2020/7/19更新于 2026/10/2582 浏览
Java Object 类的方法有哪些

面试题

Java 语言是一种单继承结构语言,Java 中所有的类都有一个共同的祖先。这个祖先就是 Object 类。

如果一个类没有用 extends 明确指出继承于某个类,那么它默认继承 Object 类。

Object 的方法我们在平时基本都会用到,但如果没有准备被忽然这么一问,还是有点懵圈的。

分析

Object 类是 Java 中所有类的基类,位于 java.lang 包中,一共有 13 个方法。

具体解答

1. Object()

Object 类的构造方法。(非重点)

2. registerNatives()

为了使 JVM 发现本机功能,它们被一定的方式命名。例如,对于 java.lang.Object.registerNatives,对应的 C 函数命名为 Java_java_lang_Object_registerNatives。

通过使用 registerNatives(或者更确切地说,JNI 函数 RegisterNatives),可以命名任何你想要你的 C 函数。(非重点)

3. clone()

clone() 函数的用途是用来复制一个当前存在的对象。只有实现了 Cloneable 接口才可以调用该方法,否则抛出 CloneNotSupportedException 异常。(注意:回答这里时可能会引出设计模式的提问)

4. getClass()

final 方法,用于获得运行时的类型。该方法返回的是此 Object 对象的类对象/运行时类对象 Class。效果与 Object.class 相同。(注意:回答这里时可能会引出类加载、反射等知识点的提问)

5. equals()

equals 用来比较两个对象的内容是否相等。默认情况下 (继承自 Object 类),equals 和 == 是一样的,除非被覆写 (override) 了。(注意:这里可能引出更常问的'equals 与==的区别'及 HashMap 实现原理的提问)

6. hashCode()

该方法用来返回其所在对象的物理地址(哈希码值),常会和 equals 方法同时重写,确保相等的两个对象拥有相等的 hashCode。(同样,可能引出 HashMap 实现原理的提问)

7. toString()

toString() 方法返回该对象的字符串表示,这个方法没什么可说的。

8. wait()

导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法。(引出线程通信及'wait 和 sleep 的区别'的提问)

9. wait(long timeout)

导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量。(引出线程通信及'wait 和 sleep 的区别'的提问)

10. wait(long timeout, int nanos)

导致当前的线程等待,直到其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量。(引出线程通信及'wait 和 sleep 的区别'的提问)

11. notify()

唤醒在此对象监视器上等待的单个线程。(引出线程通信的提问)

12. notifyAll()

唤醒在此对象监视器上等待的所有线程。(引出线程通信的提问)

13. finalize()

当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。(非重点,但小心引出垃圾回收的提问),在 JDK 1.9 中已经被注释为方法已过时。

引申常见问题

  • equals() 与 == 的区别是什么?
  • hashCode() 和 equals() 之间有什么联系?
  • wait() 方法与 sleep() 方法的区别
  • 为什么重写了 equals 就必须重写 hashCode
  • HashMap 的实现原理
  • 谈谈类加载机制

目录

  1. 面试题
  2. 分析
  3. 具体解答
  4. 1. Object()
  5. 2. registerNatives()
  6. 3. clone()
  7. 4. getClass()
  8. 5. equals()
  9. 6. hashCode()
  10. 7. toString()
  11. 8. wait()
  12. 9. wait(long timeout)
  13. 10. wait(long timeout, int nanos)
  14. 11. notify()
  15. 12. notifyAll()
  16. 13. finalize()
  17. 引申常见问题

更多推荐文章

查看全部
  • Python 数学可视化:显函数、隐函数及复杂曲线交互绘图
  • Ansible 批量部署 Nginx 实战指南
  • Linux lsof 命令常用用法与实战指南
  • AIGC 时代下的模型上下文协议 MCP 详解
  • 数据结构与算法:深入理解希尔排序
  • 飞书 CLI 开源指南:AI 接管办公全流程实操
  • Z-Image-Turbo 快速生成孙珍妮风格人像指南
  • Neo4j Desktop 2 安装与图数据库实战指南
  • Python 七大岗位学习路线与技能指南
  • GTC 2026 前瞻:Rubin 平台与 AI 工厂化趋势
  • 学术写作合规工具功能分型与协同路径:八类系统解析
  • FPGA 核心硬件资源详解:LUT、FF、BRAM、DSP、PLL 及综合报告解读
  • C++ 类与对象:封装特性的实现与实战应用
  • 2026 年前端行业现状:是夕阳还是新机遇
  • 2022 互联网春招备战:Android 开发核心面试题与优化指南
  • Ubuntu 下 llama.cpp 编译构建与性能调优实战
  • Image-to-Video 镜像免配置启动与部署指南
  • FPGA 实现 IIC 通信原理与 Verilog 代码详解
  • MaxKB4j 开源智能体搭建平台技术文档
  • Python 兼职接单实战指南:平台选择、技术储备与风险控制

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online