java - "new"的范围,没有对应的 "free"

标签 java garbage-collection

我注意到 Java 中没有 free 关键字,这让我问为什么。 当我创建一个新对象或数组时,该变量的范围是什么?

我熟悉 C++ 和 C。

最佳答案

在 Java 中,对象的生命周期与局部变量的作用域几乎没有关系。例如

File f = new File("a");
f = new File("b"); 
// variable f is still in scope but the first object can be cleaned up.

private final List<File> files = ...


{
    File f = new File("a");
    files.add(f);
} // f is out of scope but the object lives on in "files".

关于java - "new"的范围,没有对应的 "free",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12093435/

相关文章:

Java 类实例不会被销毁

garbage-collection - 尽管 NewRatio=2,年轻代仍然很小

java - 如何按降序将字符串对象存储在树集中?

java - 将登录状态存储在 sqlite 中或共享首选项

java - 为什么 quartz 不重新启 Action 业?

java - Selenium WebDriver - 两部分 - 1) AssertEquals 失败测试失败 2) 验证元素不存在

java - 如何创建用于解析阿拉伯日期的正则表达式

c# - ref 如何/为什么返回实例成员

java - 在应用程序运行的前 5 个小时内,每 2 分钟执行一次 Tomcat 完整 GC

Delphi自动垃圾收集器