• Object的公用方法们


    如图所示,Object一共有10种方法:

     

     

    下面详细描述:

    1、public Object() 方法,默认构造函数方法,当新建一个Object对象的时候,调用这个方法向堆区申请一片内存;

    2、private static native void registerNatives();方法,该方法是用naive修饰的,表明该方法的实现由c、c++完成,编译成dll文件,由java去调用,实现JAVA的JNI。

    3、public final native Class<?> getClass(); 方法,该方法也是用native修饰的,有返回值,返回的是类对象Class类型。

    4、public native int hashCode();方法,调用该方法返回该对象的哈希码值

         两个对象相等,那么它们的哈希码值一定相等。

         如果两个对象的哈希码值相等,那么这两个对象不一定相等。

         重写equals() 方法一定要重写 hashCode() 方法。

         hashCode() 方法主要是方便集合元素的插入和删除的操作。当一个HashSet中需要新插入一个元素时,由于不允许有重复的元素,如果用equals() 方法去比较,那么效率很低。用hashCode() 方法直接返回该哈希码值,可以通过算法判断是否存在该对象。很大地提升效率。

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

         用于比较对象是否相同,一般会重写。

    6、protected native Object clone()方法;克隆对象,默认是浅客隆,如果对象的成员变量有对象,需要重写该方法进行深克隆,需要实现Cloneable才能调用clone方法,不然会抛出异常。

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

         将对象转换为可读的字符串,一般需要重写。

    8、public final native void notify()唤醒阻塞队列中的一个线程。

            public final native void notifyAll();唤醒阻塞队列中的所有线程。

    9、public final native void wait(long timeout);//精确到毫秒

          public final void wait(long timeout, int nanos);//精确到纳秒

          public final void wait();阻塞线程。

    10、protected void finalize(); 一般不建议使用该方法,虚拟机会自动清理对象,或者用try{}finally{}去释放资源。

  • 相关阅读:
    学习过程
    一个链表中包含环,请找出该链表的环的入口结点
    归并排序-递归实现
    31、求整数范围中1的个数
    冒泡排序
    常用的端口对应的协议
    数值的整数次方
    二分查找(折半查找)
    用两个队列模拟栈的弹出和输入
    Java源码-HashMap(jdk1.8)
  • 原文地址:https://www.cnblogs.com/fankongkong/p/5527139.html
Copyright © 2020-2023  润新知