Java Object 类中有什么方法,有什么作用?

Java 的 Object 类是所有类的“祖宗类”,每个类都继承了它的方法。以下是 Object 类中主要方法的作用,用大白话解释:

1. toString()

  • 作用:返回对象的“自我介绍字符串”。比如打印对象时,默认会调用这个方法。
  • 默认行为:输出对象的类名 + 内存地址(比如 java.lang.Object@1b6d3586)。
  • 实际应用:通常需要重写这个方法,让对象显示更有意义的信息。

2. equals(Object obj)

  • 作用:判断两个对象是否“相等”。默认比较的是内存地址(即是否是同一个对象)。
  • 实际应用:通常需要重写这个方法,根据对象的属性判断逻辑相等。

3. hashCode()

  • 作用:返回对象的“哈希码”(整数),用于哈希表(如 HashMap、HashSet)快速定位对象。
  • 规则:如果两个对象通过 equals() 判断相等,它们的 hashCode() 必须相同。 通常需要和 equals()一起重写,否则会导致哈希表功能异常。

4. getClass()

  • 作用:返回对象的运行时类(比如 Person.class)。
  • 用途:反射操作、判断对象类型。

5. clone()

  • 作用:创建并返回当前对象的一个“副本”。
  • 注意:默认是浅拷贝(基本类型复制值,引用类型复制地址)。 需要实现 Cloneable 接口,否则会抛出异常。实际开发中较少使用,常用复制构造函数或序列化代替。

6. finalize()

  • 作用:对象被垃圾回收前调用,用于资源释放(如关闭文件)。
  • 现状:Java 9 后标记为废弃(不推荐使用),因为无法保证何时执行,可能导致性能问题。

7. 线程协作方法:wait(), notify(), notifyAll()

  • 作用:控制线程等待和唤醒(必须在同步代码块中使用)。 wait():让当前线程等待。notify():随机唤醒一个等待的线程。notifyAll():唤醒所有等待的线程。
  • 用途:多线程场景下协调资源竞争(如生产者消费者模式)。

总结:

  • 常用方法toString()equals()hashCode() 通常需要重写。
  • 少用方法clone()finalize()
  • 线程相关wait()notify() 等需要谨慎使用。

全部评论

相关推荐

渴望wlb的牛油果很...:直说卡第一学历不就行了 非得拐弯抹角
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务