English 中文(简体)
如果存在两个层次的软参照物体,理事会将做些什么。
原标题:What will GC do if there is a two level soft referenced object

我在 Java知道我们有软参照概念。 如果有:

(1) 缩略语“f”指标A

(2) 在标的A中,它强烈地提到反对B

3) 标的A &B在任何地方都没有提及。

根据定义,物体A和物体B既是“可达到的”权利?

接着说,现在我们不忘,GC kicks。 是否可回收目标B,但不反对A?

如果这种情况发生,那么,如果我们想要通过“f”获得反对B,那将是无效的。 如何避免这种情况发生?

我看不到在java doc中的任何解释。

问题回答

接着说,现在我们不忘,GC kicks。 是否可回收目标B,但不反对A?

No. The GC will nottter strong reference inable Object. (这当然将打破不可接触物体的提及,作为回收过程的一部分。) 但是,你可以指出,......由于看到这种情况,你需要这个目标才能达到。

这是在<代码>java.lang.ref包装的javadoc中所作说明的结果。

基本上,物体不可接受,,因此,有资格被收回,如果在上述任何一种方式中无法达到。

......如果“上述方式”包括强力、软弱、软弱和tom的可及性。

两个突出的词意是,要求退约是处于不可逆状态的结果。 由于没有任何其他国家提到收回资格,我们的结论是,不可收回是收回的先决条件。

这肯定符合常识。 如果允许(谨慎)GC在可接触物体中“停用”强有力的参考资料,则不可能在物体被ten入后安全地与物体合作。 (审议无效参考资料属于图书馆类的案件......)

我认为,应当简短地介绍如何追踪GCs基本工作,以澄清问题。

追踪GC( Java和NET所使用的仪器都属于这一类别)有一套称为<代码>root Point<>/code>、这些是全球变量(java指各阶层的固定变量)和所有固定参数。 《GC》对这些物体进行了跟踪,并标出所有活着的物体,即通过至少一个根点的参考资料可以接触。 完成后,所有生活变量均已标明,其余部分可以收集垃圾。

现在可以用两种不同的方式处理软参照问题:(a) 我们遵循软参照标准,标明其中的所有物体或(b)我们不这样做。 具体发生的情况是执行特定的核查和核查机制,但在决定之后,没有其他区别。

因此有两种可能的情况:

  • The GC follows the soft reference to A in which case none of the two objects will be GCed.
  • The GC doesn t follow the soft reference to A (and there are no hard references to it). A is GCed, B is GCed if no live object has a reference to it.

摘自:

“一物体如果无法轻易达到,但可通过检索软参考资料而达到,则该物体可软易达到。

“如果某一物体在未穿透任何参考物体的情况下能够到达,那么该物体就能够被强烈地接近”。

我认为这非常清楚。 B是软性可及的,因为只有穿透软参照才能达到。

Said Docs/





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...