JNI规范

JNI之四:JNI函数(下)

相关链接:JNI函数(上)


对象操作


AllocObject

jobject AllocObject(JNIEnv *env, jclass clazz);

不调用构造函数的情况下,分配一个新的对象。返回对象引用。

注意:java语言规范,12.6.1 实现finalize:“在对象o上调用了Object的构造方法,且构造方法调用成功,否则对象o不可终结”。因为AllocObject()未调用构造方法,所以通过此函数创建的对象不符合终结机制(finalization),不会被终结。

clazz参数不可为数组class。

阅读更多

JNI之四:JNI函数(上)

本文作为JNI函数参考,列出了完整的JNI函数,并呈现了JNI函数表的布局。

注意,属于“必须(must)”用于描述对于JNI程序员的限制。例如,当你遇到一些JNI函数必须接受一个非空对象时,你的责任就是确保不会传一个空对象到JNI函数。因此JNI实现不必在JNI函数中做空指针检查。明确不允许的情况下传入空,将引起未捕获异常或奔溃。

阅读更多