gpt4 book ai didi

java - 方法创建的对象在退出时删除

转载 作者:行者123 更新时间:2023-12-01 23:38:15 27 4
gpt4 key购买 nike

在特定方法退出时,方法中创建的对象/字段是否会被删除?

示例:

public static void createFolder() {

File folder = new File(C:\example\path "foldername");
folder.mkdir();
}

退出“createFolder”方法时,用于存储文件“文件夹”的内存是否会被删除?

最佳答案

folder 引用的 File 对象在退出该方法时将有资格进行垃圾回收,因为这是对它的唯一引用(folder)那时就超出了范围。

何时真正进行垃圾收集是不可能准确判断的,但会在那之后的某个时间。

更一般地,方法中的局部变量在堆栈上分配,并在超出范围时被删除。如果它们是原语(int、float、long 等),它们将立即不再存在。如果它们是引用(如您的情况),则引用将立即不再存在,但只要引用存在,所引用的对象就会继续存在。例如,如果您的 createFolder() 方法要返回 folder 的值,并且调用者将该引用保留在其自己的变量之一中,则 File 对象(尚)不符合 GC 条件。当对某个对象的所有引用不再存在时,该对象本身就有资格进行 GC。该语言没有准确指定 GC 发生的时间。

由于一些与“弱”引用有关的深奥主题,这有点复杂,但您可以暂时忽略它们。

关于java - 方法创建的对象在退出时删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18326285/

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