什么是弱全球参考?它与全球参考有何不同?

时间:2012-05-08 13:12:05

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

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

2 个答案:

答案 0 :(得分:4)

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

正如其写的:

  

本地和全局引用具有不同的生命周期。本地参考   自动释放,而全局和弱全局引用   在程序员释放它们之前一直有效。

本地引用和全局引用之间的区别是:上下文

本地引用只是一个局部变量。一旦你离开它的上下文就会破坏底层对象(比如从定义它的本机函数返回)。

  

与全局引用一样,弱全局引用仍然有效   本机方法调用和跨不同的线程。与全球不同   引用,弱全局引用不保留底层对象   从垃圾收集。

弱全局引用和全局引用之间的区别在于,如果需要,可以对弱引用的对象进行收集(如果内存不足)。

答案 1 :(得分:-1)

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

软参考是指当gc想要清除对象时不会阻止gc的参考。但是如果一个软引用引用的对象gc尝试在可能的情况下将对象保留在内存中。