gpt4 book ai didi

java - 在 Java 中符合垃圾回收条件的对象

转载 作者:行者123 更新时间:2023-11-30 08:54:41 25 4
gpt4 key购买 nike

class Test
{
public static void main(String[] agrs)
{


String[] person = new String[20];

String pername = "Peter";

person[0] = pername;

pername = null;

System.out.println(person[0]); // prints " Peter " on screen

System.out.println(pername); // no content in pername. prints " null "


}

}

pername 对象是否符合垃圾回收条件?
我认为它符合条件,因为 person[0] 包含“Peter”并且 person[0] 不再引用 pername。

最佳答案

这里有点误会。 pernameperson[0] 只是对 String 对象实际实例的引用。引用存在于堆栈中,并且将一直存在于堆栈中,直到它处于程序上下文中。除非两个引用都为空,否则不会对 String 实例进行 GC。

任何从 GC 根可达的对象都不能被垃圾回收。一个简单的 Java 程序将具有以下 GC 根

  1. main方法中的局部变量
  2. 主线程
  3. 主类的静态变量

您的案例属于第一类。

您可以阅读更多 - Java Memory Management

关于java - 在 Java 中符合垃圾回收条件的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29326827/

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