• Object类上的方法


    1.getClass:

    public final native Class<?> getClass();

    返回当前对象运行时的类的对象。

    2.hashCode:

    public native int hashCode();

    这个方法是为哈希表这种数据结构提供支持的。(例如HashMap)

    hashcode 的通用约定为:

    1)在一个java应用中在同一个对象上调用多次hashCode方法应该返回同样的int结果。

    但是int结果不必保持一致性在同一个java应用的两次执行中。

    2)如果两个对象是相等的(equals方法返回true),则hashCode方法必须返回相同的int结果。

    3)如果两个对象通过equals方法不相等,不要求他们的hashCode方法必须返回不同的int结果,但是

    不同对象上返回不同的hashCode可以提高哈希表的性能(缩短链表的长度)。

    3.equals:

    public boolean equals(Object obj) {
    return (this == obj);
    }

    4.clone:

    protected native Object clone() throws CloneNotSupportedException;

    注意两点:第一此方法是protected,只有子类可以调用;第二,子类必须实现Cloneable接口,不然此方法会抛出CloneNotSupportedException异常。

    所有数组默认为实现了Cloneable接口,所以数组都有clone方法。另外,这个方法是创建一个新的对象,并且使用被拷贝的对象的属性值来初始化新对象的属性。

    而并不是将属性也拷贝一份。所以此方法是一个浅拷贝,并不是深拷贝。

    5.toString:

    public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }

    6.notify:

    public final native void notify();

    唤醒一个正在等待此对象上的线程。如果有多个等待线程,则任意挑选一个唤醒。具体挑选哪个依赖具体实现。

    被唤醒的线程不会立即执行,直到当前线程释放对象上的锁。被唤醒的线程还要和其他想要获取锁的线程竞争锁。

    此方法只能被已经获取对象上的锁的线程调用。

    7.notifyAll:

    public final native void notifyAll();

    唤醒所有等待在此对象上的线程。其他和notify方法一样。

    8.wait:

    public final void wait() throws InterruptedException {
    wait(0L);
    }

    导致当前线程进入等待状态直到被唤醒(notified或者interrupted),此方法和调用wait(0L, 0)效果一样。

    public final native void wait(long timeoutMillis) throws InterruptedException;

    9.finalize

    此方法在java9中已经申明为Deprecated,而且在其他版本中也极不推荐使用,所以不做介绍了。

  • 相关阅读:
    第三次作业
    第二次作业
    第一次作业—编译原理概述
    第六次课堂作业——正规文法与正规式
    词法分析程序的设计与实现
    1702第四次作业(文法和语文总结与梳理)
    1702第三次作业(语法树,短语,直接短语,句柄)
    软工1702第一次作业(简述编译程序)
    random库的使用
    基本的字符串之切片
  • 原文地址:https://www.cnblogs.com/CLAYJJ/p/10244382.html
Copyright © 2020-2023  润新知