6

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

4

2 回答 2

4

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

正如其所写:

本地和全局引用具有不同的生命周期。局部引用被自动释放,而全局和弱全局引用在程序员释放之前保持有效。

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

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

与全局引用一样,弱全局引用在本地方法调用和不同线程中仍然有效。与全局引用不同,弱全局引用不会阻止底层对象被垃圾收集。

弱全局引用和全局引用之间的区别在于,弱引用引用的对象可以在需要时进行垃圾回收(以防内存不足)。

于 2012-05-08T13:52:26.820 回答
-1

如果一个对象只有弱引用,gc 可以将其从内存中清除。

软引用是指当它也想清除对象时不会阻止 gc 的引用。但是如果一个对象被软引用引用,那么 gc 会尽可能地将该对象保留在内存中。

于 2012-05-08T13:17:39.893 回答