ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java基础知识总结(03)

2021-11-07 14:03:52  阅读:171  来源: 互联网

标签:03 Java 对象 Object 基础知识 hashCode 方法 final native


Object类有哪些方法?

 

        

         1.1 protected native Object clone() throws CloneNotSupportedException;(native关键字标识的方法,代表该方法通过C/C++实现)

            clone是浅拷贝;只克隆自身对象和对象内的实例变量的引用地址,但是使用该方法必须实现cloneable接口(扩充:深度拷贝使用objectStream;先将对象序列化;再反序列化)。

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

            很显然该方法,比较传入的对象和this地址是否相等,判断传入的对象是否和this是同一个对象。 

        1.3 protected void finalize() throws Throwable{}

            子类覆盖该方法来实现资源清理的工作,并且该方法是在GC回收对象之前调用该方法。

            扩展:final、finally和finalize的区别?

                final:对类、方法和变量的关键字修饰符。final修饰类时,该类不能被继承;final修饰方法时,防止子类对该方法修改(特列:子类也能定义跟该方法同名的方法,但是该方法必须被private修饰);final修饰变量时,该变量变成为常量,只能进行一次显示赋值。

                finally:作为异常处理的一部分,它只能用在try/catch语句中,并且附带一个语句块,表示该语句块最终一定会被执行。(try/catch正常执行并且没有强制退出程序的情况下,finally语句块必然会被执行)

              finalize:finalize()是java.lang.Object里定义的方法,并且当该对象被回收的时候被调用。

        1.4 public final native Class<?> getClass;

                动态获取当前运行时,对象的Class对象。

        1.5 public native int hashCode;

                获取当前对象的hashCode的值,该值是在整数范围内[-2^31~2^31-1]。

                扩展:

                        1、每个对象的hashCode值在一个程序/系统中是具有唯一性。

                        2、若二个对象对用equals比较值是否相等,equals方法返回true,那么二个对象的hashCode返回的值一定相等,而该方法返回值为false,则hashCode返回的值不一定不相等。

        1.6 public final native void notify/notifyAll();

                 notify()方法随机唤起线程池中阻塞的线程,notifyAll()方法随机唤起线程池中所有阻塞的线程。(notify()和notifyAll()方法只能用在synchronized方法或者代码块中)

         1.7 private static native void registerNatives() ;

                  调用registerNatives()方法完成对该类本地方法的注册。

                  作用:

                        1、通过registerNatives()方法在类被加载的时主动将本地方法链接到调用方。

                        2、本地方法在程序运行中更新,也可以通过调用registerNative方法进行更新;

                        3、Java程序需要调用一个本地应用提供的方法时,因为虚拟机只会检索本地动态                               库,因而虚拟机是无法定位到本地方法实现的,这个时候就只能使用                                               registerNatives()方法进行主动链接。

                   参考:Object类中的registerNatives本地方法的作用_住手丶让我来的博客-CSDN博客

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

                        toString()方法一般会被子类重写。

          1.9                            

         wait()/wait(int timeout, int nanos)方法基于wait(long timeout)实现,这些方法都只能再synchronized方法或者代码块中,其作用让该线程让出CPU,释放锁,进入阻塞状态。

参考:Object类有哪些方法 - 桃子不在 - 博客园

标签:03,Java,对象,Object,基础知识,hashCode,方法,final,native
来源: https://blog.csdn.net/qq_38089025/article/details/121090620

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有