JNI 核对表
在使用 JNI 时必须记住以下几点。
下表显示 JNI 核对表:
| 切记 | 违反的后果 |
|---|---|
| 不得将局部引用保存在全局变量中 | 采用随机时间间隔时会发生随机崩溃(这取决于您在覆盖的对象空间中选取的内容)。 |
| 确保创建的每个全局引用都有一个删除该全局引用的路径。 | 内存泄漏。 如果全局引用存储溢出,那么可能会抛出本机异常。 这难于隔离。 |
| 始终检查 JNI 函数返回的异常(或返回码)。 始终在检测到延迟异常时立即处理该异常。 | 发生无法解释的异常或无法定义的行为。 可能导致 JVM 崩溃。 |
| 确保始终释放数组和字符串元素。 | 泄漏小部分内存。 可能会使堆分段并导致其他问题首次出现。 |
| 确保正确使用 isCopy 和方式标志。 请参阅 复制和锁定。 | 发生内存泄漏和/或堆分段。 |
| 在本机代码中更新 Java™ 对象时,请确保访问同步。 | 发生内存损坏。 |