JNI中的弱全局引用是什么?它与全局参考和本地参考有何不同?
问问题
3021 次
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 回答