程序(Java)中变量的生命周期是多少?

发布于 2024-08-07 13:13:18 字数 84 浏览 6 评论 0原文

你能告诉我一个变量在程序中存在多久(在 Java 中)。即方法内部声明的变量、参数中使用的变量、静态变量、用于从方法返回的变量等。

谢谢。

Can you tell me how long a variable lives in a program (in Java). i.e. variables declared inside methods, variables used in parameters, STATIC variables, variables used to return from a method, etc.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

唔猫 2024-08-14 13:13:18
  1. 当方法退出时,方法内部声明的引用将超出范围。
  2. 传递给方法的参数将不符合 GC 条件,除非不再有对它们的引用或者它们超出范围。
  3. 静态引用与类相关联,并且只要类被加载,静态引用就一直存在。
  4. 返回的引用将不符合 GC 条件,直到不再有对它们的引用或者它们超出范围。
  1. References declared inside methods go out of scope when the method exits.
  2. Parameters passed to methods won't be eligible for GC until there are no more references to them or they go out of scope.
  3. Static references are associated with a class and live as long as the class is loaded.
  4. Returned references won't be eligible for GC until there are no more references to them or they go out of scope.
[浮城] 2024-08-14 13:13:18

只要 Java 中的对象可以通过 传递闭包 进行引用,Java 中的对象就可以保证存在。 a href="http://en.wikipedia.org/wiki/Root_set#Tracing_garbage_collectors" rel="nofollow noreferrer">根集。这是应用程序活动对象的保守近似值。

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

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

Objects in Java are guaranteed to live as long as they are referenceable through a transitive closure of the root set. This is a conservative approximation of the application's live objects¹.

Edit: Is this question concerning object lifetime, or variable scope? We have some mixed terminology going on.

¹ A live object is an object that will be referenced again before the application terminates.

你又不是我 2024-08-14 13:13:18

生活垃圾邮件层次结构

类变量>实例变量>方法变量>局部变量

类变量的垃圾寿命最长,而局部变量的寿命最短,事实上,局部变量只能在我们定义它们的块内访问。

Life Spam hierarchy

Class Variable > Instance Variable > Method variable > Local Variable

Class variable has the longest life spam and local variable has least, in-fact the local variable are only accessible within the block we define them in.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文