gpt4 book ai didi

java - 在方法中创建的对象是否仅在方法执行的生命周期内存在?

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

我正在编写一个 Java 应用程序,并尝试自学内存管理。如果在已经创建的对象的方法中实例化一个String对象,那么在该方法执行后,该String对象还会存在于内存中吗?以这个例子为例。执行 myObject.setNewName() 后,newString 是否存在于内存中?或者如果这些对象不是实例变量,java会销毁它们吗?

public class MyObject(){

private String name;
private Integer id;

public myObject(Integer id, String name){
this.id = id;
this.name = name;
}

public void setNewName(){

String newString = "This is a new name";
this.name = newString;
}
}

另一个文件

MyObject myObject = new MyObject(4,"Bob");

myObject.setNewName();

最佳答案

如果对对象的引用保留在方法之外,例如分配给字段,那么当方法结束时,该对象将不会被垃圾回收。

当方法结束时,仅分配给局部变量的对象将“不可访问”,因此将被标记为垃圾回收。

这一切都与范围有关。如果对该对象的引用仍在范围内,它将保留在内存中。

关于java - 在方法中创建的对象是否仅在方法执行的生命周期内存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15445613/

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