java - 什么是弱全局引用?它与全局引用有何不同?

标签 java c java-native-interface weak-references

JNI 中的弱全局引用是什么?它与全局引用本地引用 有何不同?

最佳答案

我认为您的问题的答案可以在这里找到: http://java.sun.com/docs/books/jni/html/refs.html

如其所写:

Local and global references have different lifetimes. Local references are automatically freed, whereas global and weak global references remain valid until they are freed by the programmer.

局部引用和全局引用的区别在于:上下文

局部引用只是一个局部变量。一旦您离开其上下文(例如从定义它的 native 函数返回),底层对象将被销毁。

Like global references, weak global references remain valid across native method calls and across different threads. Unlike global references, weak global references do not keep the underlying object from being garbage collected.

weak global references 和 global references 的区别在于,如果需要(在内存不足的情况下),weak 引用的对象可以被垃圾回收。

关于java - 什么是弱全局引用?它与全局引用有何不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10499320/

相关文章:

c - Ruby native C 大整数段错误

java - Xposed如何在Android中进行hooking

java - 嵌套 json 到 java 对象 List<Object> 返回预期值,但 List<DefinedObject> 返回 null 值

c++ - sqlite3数据库文件可以删除,仍然可以访问

c++ - 如何在 AES_set_encrypt_key 中使用 openssl 中的自定义 key

java - 限制 C++ 代码访问 JNI 中的某些类

android - C JNI 库使整个 Android 应用程序崩溃

java - 为什么 Kotlin 进行空检查,当反编译为 Java 时会声明一些未使用的变量?

java - 如何创建回调(添加为动态参数,一个函数)?

Java的多种接口(interface)和反射