zoukankan      html  css  js  c++  java
  • java源码分析-Object

    Java面向对象的基础类,,一切类的最上层,鼻祖类。-------jkd-1.8

    没有属性定义,都是方法,,有12个显性方法。

    private static native void registerNatives();

    native关键字修饰,表示调用的不是java写的方法(C++集成在.dll文件中的方法),是需要所在的操作系统提供的(必须)。作用就是,然后编译时,会将c++方法映射到带有native关键字的对应方法。具体的不细究了。

    而这个方法的作用应该是 注册本地方法,,让jvm知道,我需要应用外部函数(CC++),为其他native方法服务。https://blog.csdn.net/a379039233/article/details/6097656

    public final native Class<?> getClass();

    也是native的,该方法作用就是获取类对象,类的定义就是:具有一组相同特征或行为的实例的抽象并进行描述。对象就是 某个类的具体实例,但是 类 也是一个对象,,本身有一定的特征及描述信息,Java中有专门定义了一个类,Class,描述其他类所具有的这些特性。

    public native int hashCode();

    作用就是返回当前方法的的hash码,意义很大。

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

    首先,== 与equal的的区别:https://blog.csdn.net/qq_27471405/article/details/81010094

    这里直接==,也不难理解,,很好玩的是,这里的==刚好解释了  链接里的信息。

    protected native Object clone() throws CloneNotSupportedException;

    这里的protected很有讲究,clone出来的是新对象  还是新引用,,这个自己写个demo测试了一下,,是新对象,,这个就引入了深拷贝、浅拷贝。

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

    若对象没有重写,则输出就是 完整包名+类名+@+对象的哈希码,至于为什么这样,感觉就是输出能唯一(可能不)锁定这个对象的信息?而不是具体参数。

    protected void finalize() throws Throwable { }

    垃圾回收时调用的,,自己也可以调用,

    剩下的有

     核心方法都是native,这个涉及到线程的状态、多线程编程,,放在后面慢慢边学习边写吧。

  • 相关阅读:
    【转】PHP error_reporting() 错误控制函数功能详解
    第八讲_图像问答Image Question Answering
    C中的继承和多态
    第七讲_图像描述(图说)Image Captioning
    TensorFlow 之 高层封装slim,tflearn,keras
    第六讲_图像分割Image Segmentation
    第五讲_图像识别之图像检测Image Detection
    Tensorflow 之 TensorBoard可视化Graph和Embeddings
    第四讲_图像识别之图像分类Image Classification
    理解Neural Style
  • 原文地址:https://www.cnblogs.com/haerwang/p/9957565.html
Copyright © 2011-2022 走看看