1

你能告诉我变量在程序中的生存时间(在Java中)吗?即在方法内部声明的变量、在参数中使用的变量、STATIC 变量、用于从方法返回的变量等。

谢谢。

4

2 回答 2

3
  1. 当方法退出时,在方法内部声明的引用超出范围。
  2. 传递给方法的参数在没有更多对它们的引用或超出范围之前将不符合 GC 条件。
  3. 静态引用与一个类相关联,并且只要类被加载就存在。
  4. 返回的引用将不符合 GC 的条件,直到不再引用它们或它们超出范围。
于 2009-10-08T00:03:51.373 回答
2

只要通过根集传递闭包可引用,Java 中的对象就可以保证存在。这是应用程序活动对象的保守近似值¹。

编辑:这个问题是关于对象生命周期还是变量范围?我们有一些混合的术语。

¹ 活动对象是在应用程序终止之前将再次被引用的对象。

于 2009-10-08T00:06:30.993 回答