Java中的硬引用是什么?

6

当我学习PermGen时,我遇到了“硬引用”这个术语。我不知道“硬引用”的含义。请问有人能解释一下或给我一些相关的教程吗?

3个回答

3

1
是的 - 不要重新发明教程 :) - Bohemian

2
硬引用是普通的引用,即变量,与java.lang.ref.Reference的子类、虚引用、软引用和弱引用相对。

1

强引用是一种告诉垃圾回收器不要触碰该对象(即不从内存中删除它)的引用。

通过垃圾回收器根(任何线程的临时变量、任何类的静态变量和来自JNI本地代码的特殊引用)可达的任何对象都将被保留。强引用是普通引用。

垃圾回收器在清理时不考虑软引用、弱引用和虚引用(这并非完全正确,因为软引用会保留一段时间)。只有通过非强引用可达的对象可能在程序执行期间被清除,并且这些引用随时可能返回null。与强引用相反,您需要创建一个referenceobject来使用这些类型的引用。

有关软引用、弱引用和虚引用的更多背景信息,请参见this document


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接