gpt4 book ai didi

java - 如何在更改原始引用变量后再次引用 Java 对象

转载 作者:行者123 更新时间:2023-11-29 04:35:19 25 4
gpt4 key购买 nike

我认为这将是一个很好的练习,可以帮助您更多地了解对象。

我想弄清楚如何在更改对象的原始引用变量后再次引用对象。

采用以下代码:

String person = "person a"; //Line 1
person = "person b"; //Line 2

现在,第 1 行创建一个新的 String 对象,其引用变量为 person。第 2 行将该引用变量分配给另一个新的 String 对象。原来的 String 对象现在没有引用变量。

我将如何返回并引用第 1 行内存中已存在的原始 String 对象?比如说,将引用变量 person 分配回原始 String 对象?作为后续的想法(并不是说我对垃圾回收了解那么多),但是原始对象是否符合垃圾回收条件,因为它在第 2 行之后不再有引用变量,因此没有资格再次被引用?

我看到了 hashCode() 方法,还有 System.identityHashCode() 但无法弄清楚如何实现它们以引用又是原来的对象。

最佳答案

第 3 行:person = "person a"; Java 有一个 String 内部缓存。现在,如果它不是 String(或其他一些缓存类型),那么答案就是您不需要。因为被引用的对象符合垃圾回收条件(它不再有引用)。您可以像这样验证这一点,

String person = "person a"; //Line 1
System.out.println(person.hashCode());
person = "person b"; //Line 2
person = "person a"; //Line 3
System.out.println(person.hashCode());

这将显示相​​同的 hashCode 两次;因为它是同一个实例。

关于java - 如何在更改原始引用变量后再次引用 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41876279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com