Java 指针、链接、对象和引用计数

Java 指针、链接、对象和引用计数,java,Java,如果我的反应有错误,请纠正我 我的问题是: 假设Instance类型的Instance对象具有属性“姓氏” anInstance.getname返回myurname String a = "a"; // allocate memory and write address of a memory block to a variable String b = "b"; // a and b hold addresses b = a; // copy a address into b. //

如果我的反应有错误,请纠正我

我的问题是:

假设Instance类型的Instance对象具有属性“姓氏” anInstance.getname返回myurname

String a = "a"; // allocate memory and write address of a memory block to a variable
String b = "b";

// a and b hold addresses

b = a; // copy a address into b. 

// Now what? b value is completely lost and will be garbage collected

//*** next step


a = null; // now a does not hold a valid address to any data, 

// still data of a object exist somewhere, yet we cannot get access to it.
问题是——GetNashname值,即MySurname是否为真 不会被垃圾收集,因为并且仅仅因为 它有积极的参考价值 计数器>0,如果计数器的其他属性 有一个零参考计数器,它们会
垃圾收集?

MySurname不会被垃圾收集,因为它有一个活动引用s,但没有引用计数。Java的垃圾收集器不依赖于引用计数。

MySurname不会被垃圾收集,因为它有一个活动引用s,但没有引用计数。Java的垃圾收集器不依赖于引用计数。

Java使用的垃圾收集算法比简单的引用计数复杂得多


是的,一个实例和它引用的任何对象都可能是GC'd,而姓氏不是。这种情况是否发生取决于范围和其他您没有描述的因素。我认为您的问题没有提供足够的上下文来给出有意义的答案。

Java使用的垃圾收集算法比简单的引用计数复杂得多


是的,一个实例和它引用的任何对象都可能是GC'd,而姓氏不是。这种情况是否发生取决于范围和其他您没有描述的因素。我认为你的问题没有提供足够的上下文来给出有意义的答案。

我想是的,因为每次下一个链接断开时,它都会减少。当它为零时,可以对其进行垃圾收集。@EugeneP-那么循环引用将如何进行GCD?好的,你是对的。这超出了问题的范围,GC算法。我想这是因为每次下一个链接断开时,它都会递减。当它为零时,可以对其进行垃圾收集。@EugeneP-那么循环引用将如何进行GCD?好的,你是对的。这超出了问题的范围,GC算法。作为一个令人困惑的学究,文本和编译时常量字符串在执行代码时被插入而没有分配。实际上,它们是代码的一部分,与代码同时被垃圾收集。作为一个令人困惑的学究,文本和编译时常量字符串在执行代码时被保留,而不是分配。实际上,它们是代码的一部分,与代码同时被垃圾收集。
now String s = anInstance.getSurname();
anInstance = null;