private static native void
registerNatives();
static
{
registerNatives();
}
关联c函数,类似于将c的函数导入guolai,这样你就可以调用c的函数了,主要导入的函数是
static JNINativeMethod methods[] = {
{“hashCode”, “()I”, (void *)&JVM_IHashCode},
{“wait”, “(J)V”, (void *)&JVM_MonitorWait},
{“notify”, “()V”, (void *)&JVM_MonitorNotify},
{“notifyAll”, “()V”, (void *)&JVM_MonitorNotifyAll},
{“clone”, “()Ljava/lang/Object;”, (void *)&JVM_Clone},
};
所以当调用这些方法时,实际上是调用的c函数
public native int hashCode();
按照java约定规范,每个object都应该有一个hashcode值,主要用来支持哈希表,可以考虑这个问题,是怎么保证每个对象的哈希值接近不重复
protected native Object clone() throws CloneNotSupportedException;
按照约定,这个方法是返回一个对象的copy,相当于在内存中把这个对象重新复制了一下,可以研究下copy的深度
protected void finalize() throws Throwable { }
java垃圾回收机制规定,在一个对象呗销毁前必须要调用的方法
其它的一些方法主要是和线程有关
总结,Object class 主要是实现java一些基本的约定
时间: 2024-11-25 11:46:16