博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于Object类里的本地方法registerNatives
阅读量:2394 次
发布时间:2019-05-10

本文共 591 字,大约阅读时间需要 1 分钟。

为了加深对java本地方法的理解,在网上找到了该方法的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},
};

JNIEXPORT void JNICALL

Java_java_lang_Object_registerNatives(JNIEnv *env, jclass cls)
{
    (*env)->RegisterNatives(env, cls,
                            methods, sizeof(methods)/sizeof(methods[0]));

}

很简单,就是对几个本地方法进行注册(也就是初始化java方法映射到C的方法)。
这里需要注意的是很多类里都有这个方法,但是执行的目标是不相同的,例如在我另一篇《》System里的这个方法,就不一样了。

转载地址:http://fvzob.baihongyu.com/

你可能感兴趣的文章
Python的闭包和装饰器
查看>>
Python基于Socket实现简单聊天室
查看>>
Python的Twisted入门
查看>>
Flask的表单处理
查看>>
Flask-Login的使用
查看>>
Python往MySQL存储图片
查看>>
Flask-SQlAIchemy管理数据库
查看>>
Flask-Migrate实现数据库迁移
查看>>
su: cannot set user id: Resource temporarily unavailable
查看>>
SSHException: Incompatible ssh peer (no acceptable kex algorithm)
查看>>
shell切换用户
查看>>
session机制详解
查看>>
《算法导论》学习总结——第二部分1堆排序
查看>>
linux下进程的一些总结
查看>>
强大的g++呢还是强大的C++?太假了吧
查看>>
C++中的内联函数inline总结
查看>>
C++中的函数指针的一些总结
查看>>
ubuntu下为postgresql添加ODBC驱动过程
查看>>
linux下的su,su -,以及cd,cd - ,cd ~总结
查看>>
CAS锁为什么是乐观锁呢
查看>>