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() 等需要谨慎使用。

全部评论

相关推荐

GET请求和POST请求是HTTP协议中最常用的两种请求方法。https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=b48bebe08e474db8b80b853b12bafd48GET请求用于从服务器获取指定资源的数据。当浏览器请求一个URL时,它通常发送一个GET请求。GET请求的参数是在请求的URL中以查询字符串的形式发送的。这些参数可以通过在URL中添加键值对来传递给服务器。GET请求是幂等的,也就是说多次发送相同的GET请求不会对服务器产生任何副作用,并且可以被缓存。POST请求用于向服务器提交数据,例如表单数据。POST请求的参数是通过请求正文发送的,而不是直接在URL中传递。POST请求可以发送大量数据,且不会像GET请求那样对URL长度有限制。POST请求不是幂等的,多次发送相同的POST请求可能会导致服务器上的状态发生改变。GET和POST请求在以下方面存在区别:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=b48bebe08e474db8b80b853b12bafd48参数传递方式:GET请求将参数以查询字符串的形式附加到URL上,而POST请求将参数放在请求正文中。数据体积:GET请求的数据大小受URL长度限制,通常用于获取少量数据;而POST请求可以发送大量数据。安全性:GET请求将参数暴露在URL中,因此不适合传输敏感数据;POST请求将参数放在请求正文中,相对更安全。幂等性:GET请求是幂等的,多次发送相同的GET请求不会对服务器产生任何副作用;POST请求不是幂等的,多次发送相同的POST请求可能会导致服务器状态改变。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务