程序中变量的寿命是多少(在Java中)?

时间:2009-10-07 23:58:19

标签: variables oop static-variables

你能告诉我一个变量在程序中存在多长时间(在Java中)。即在方法内声明的变量,参数中使用的变量,STATIC变量,用于从方法返回的变量等等。

感谢。

2 个答案:

答案 0 :(得分:3)

  1. 当方法退出时,方法内部声明的引用超出范围。
  2. 传递给方法的参数在没有对它们的引用或超出范围之前将不符合GC的条件。
  3. 只要加载了类,静态引用就会与类关联并生效。
  4. 如果没有更多的引用或超出范围,则返回的引用将不符合GC的条件。

答案 1 :(得分:2)

只要可以通过transitive closureroot set引用,就可以保证Java中的对象存在。这是应用程序的活动对象的保守近似¹。

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

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