• 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,而且在其他版本中也极不推荐使用,所以不做介绍了。

  • 相关阅读:
    Pycharm(Mac版)快捷键操作篇
    Ubuntu报E: 仓库 “http://ppa.launchpad.net/webupd8team/sublime-text-3/ubuntu bionic Release” 没有 Release 文件。
    Ubuntu安装出现无法锁定管理目录是否有其他进程正在占用它?
    解决Ubuntu(18.04LTS)和win10电脑之间无法复制粘贴问题
    数据库的基本查询
    Ubuntu下数据库的操作
    Ubuntu中vi上下左右键退格键失灵的问题
    Ubuntu 18.04TLS命令安装Pycharm并固定在快速启动栏
    Ubuntu下mysql连接Navicat premium报错
    Ubuntu安装mysql报ERROR 1698 (28000): Access denied for user 'root'@'localhost',有效的解决办法
  • 原文地址:https://www.cnblogs.com/CLAYJJ/p/10244382.html
Copyright © 2020-2023  润新知