java Object中有哪些方法

在Java中,java.lang.Object类是所有类的父类。每个类都直接或间接地继承自Object。以下是Object类中定义的主要方法:

Object类的方法

  1. public final Class<?> getClass()

    • 返回一个表示对象运行时类的Class对象。
    Object obj = new Object();
    Class<?> clazz = obj.getClass();
    System.out.println(clazz.getName()); // 输出: java.lang.Object
    
  2. public int hashCode()

    • 返回对象的哈希码值。用于哈希表(如HashMap)中的键。
    Object obj = new Object();
    int hash = obj.hashCode();
    System.out.println(hash); // 输出: 哈希码值
    
  3. public boolean equals(Object obj)

    • 指示某个其他对象是否与此对象“相等”。
    Object obj1 = new Object();
    Object obj2 = new Object();
    System.out.println(obj1.equals(obj2)); // 输出: false
    
  4. protected Object clone() throws CloneNotSupportedException

    • 创建并返回此对象的一个副本。需要实现Cloneable接口。
    class MyClass implements Cloneable {
        @Override
        protected Object clone() throws CloneNotSupportedException {
            return super.clone();
        }
    }
    
    MyClass obj1 = new MyClass();
    MyClass obj2 = (MyClass) obj1.clone();
    
  5. public String toString()

    • 返回对象的字符串表示形式。
    Object obj = new Object();
    System.out.println(obj.toString()); // 输出: 类名@哈希码的十六进制表示
    
  6. public final void notify()

    • 唤醒一个正在等待此对象监视器的线程。
    synchronized (obj) {
        obj.notify();
    }
    
  7. public final void notifyAll()

    • 唤醒所有正在等待此对象监视器的线程。
    synchronized (obj) {
        obj.notifyAll();
    }
    
  8. public final void wait() throws InterruptedException

    • 使当前线程等待,直到另一个线程调用此对象的notify()notifyAll()方法。
    synchronized (obj) {
        obj.wait();
    }
    
  9. public final void wait(long timeout) throws InterruptedException

    • 使当前线程等待,直到另一个线程调用此对象的notify()notifyAll()方法,或指定的时间已过。
    synchronized (obj) {
        obj.wait(1000); // 等待1秒
    }
    
  10. public final void wait(long timeout, int nanos) throws InterruptedException

    • 使当前线程等待,直到另一个线程调用此对象的notify()notifyAll()方法,或指定的时间(以毫秒和纳秒为单位)已过。
    synchronized (obj) {
        obj.wait(1000, 500); // 等待1秒和500纳秒
    }
    
  11. protected void finalize() throws Throwable

    • 当垃圾回收器确定不再有对该对象的引用时,由对象的垃圾回收器调用,以进行清理操作。但现在已被弃用(从Java 9开始)。
    @Override
    protected void finalize() throws Throwable {
        try {
            // 清理操作
        } finally {
            super.finalize();
        }
    }
    

这些方法构成了Java中所有对象的基础行为,可以被子类重写(除了final方法),以提供特定的功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

伟主教

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值