//下面的是网上的解释,表示不理解 尤其是“您可以命名任何你想要你的C函数”
通常情况下,为了使JVM发现您的本机功能,他们被一定的方式命名。例如,对于java.lang.Object.registerNatives,对应的C函数命名为Java_java_lang_Object_registerNatives。通过使用registerNatives(或者更确切地说,JNI函数RegisterNatives),您可以命名任何你想要你的C函数。
//下面的是网上的解释,表示不理解 尤其是“您可以命名任何你想要你的C函数”
通常情况下,为了使JVM发现您的本机功能,他们被一定的方式命名。例如,对于java.lang.Object.registerNatives,对应的C函数命名为Java_java_lang_Object_registerNatives。通过使用registerNatives(或者更确切地说,JNI函数RegisterNatives),您可以命名任何你想要你的C函数。
收起
当前问题酬金
¥ 0 (可追加 ¥500)
支付方式
扫码支付
看了很多国人搞java的人都那样说这样说,我从中了解到的就是:native修饰的方法表示本地方法(跟系统有关,也可以理解为这个方法不是在java中实现的),据说这个方法在一个名为java.dll的动态库文件中。Object类中第40行(我的是jdk1.8)开始的 static{ registerNatives(); } 表示的是在类被加载时,调用 registerNatives()方法进行一些跟系统有关的方法调用,而这个方法的实现就在java.dll中(里面会根据不同系统来执行不同的底层操作)。
————说错了的,请高手来指点和纠正。
报告相同问题?