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,这个涉及到线程的状态、多线程编程,,放在后面慢慢边学习边写吧。