什么破坏了Java中的局部变量?

圣安东尼奥

我怀疑方法局部变量仅在方法执行时有效。另外,当EdenLong-generation块溢出(次要/主要GC)等时会触发GC。因此,如果方法主体末尾Eden没有溢出怎么办,那么就无需触发GC。尽管不触发主要/次要GC,我们仍将销毁所有局部变量。怎么做?

乔恩·基帕斯基

垃圾收集器-有时称为“收割者”-按自己的时间表运行,并收集不参考的对象。当然,方法退出后就无法引用局部变量,因为它们超出了范围,因此它们对于您的程序来说是死的*,但是它们仍然存在于堆中,直到GC运行为止。

在正常情况下(和大多数异常情况),您无需告诉收割机何时进行工作。当需要它时,它会静默地来,带走那些不再需要的东西。这是使用高级语言进行工作的主要优点之一:可以安全地假设您不需要考虑诸如管理死对象的重新分配之类的事情。您可以将它们抛在肩上,知道它们永远不会打扰您。我想有些高性能,高需求的应用程序需要使用GC进行摆弄,但这是一种优化,除非您有确凿的相反证据,否则应该总是认为该优化为时过早。

*当然,对于返回到调用函数的局部变量,它可能会成为该范围内的局部变量,并且会增加寿命。通常,规则是:如果代码的某些部分仍在乎该变量,则不会对其进行垃圾回收,并且如果程序的任何部分都在乎该变量,则无需考虑它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

Java中的局部变量

来自分类Dev

Java中的局部变量

来自分类Java

为什么局部变量在Java中是线程安全的

来自分类Java

为什么局部变量在Java中也称为“自动”?

来自分类Dev

如何防止破坏 Rust 中对局部变量的引用?

来自分类Java

什么是线程中的局部变量?

来自分类Dev

为什么在类中定义的变量不是局部变量而是Java中的实例变量?

来自分类Java

在Java中开关控制局部变量

来自分类Java

Java字节码中的局部变量

来自分类Dev

在Java Lambda中编辑局部变量

来自分类Java

Java中的局部变量和实例变量有什么区别

来自分类Dev

在Java中,“初始化局部变量”的确切含义是什么?

来自分类Dev

Java中的局部变量与全局变量同名

来自分类Java

局部变量是多余的Java

来自分类Dev

什么是内存模型中的局部变量和对象?

来自分类Dev

为什么局部变量会在Python中循环

来自分类Dev

为什么lambda对象中的局部变量是const?

来自分类Dev

张量流中的局部变量是什么?

来自分类Dev

javascript 中语句头的局部变量的范围是什么?

来自分类Dev

在嵌套方法中访问时,局部变量被闭包捕获破坏

来自分类Dev

访问ASM Java库中的局部变量

来自分类Java

Java中是否有线程组局部变量?

来自分类Dev

Java ASM - 如何在方法中创建局部变量

来自分类Dev

Java-静态方法中的局部变量

来自分类Java

如何在Java中创建静态局部变量?

来自分类Java

在内部类中访问局部变量(java)

来自分类Dev

如何使局部变量在Java中的循环外可访问

来自分类Java

为什么即使事后没有修改,Java中的局部变量也不被视为“有效的最终变量”?

来自分类Java

如何通过将局部变量存储到Java Android中的类变量(全局)来访问局部变量

Related 相关文章

  1. 1

    Java中的局部变量

  2. 2

    Java中的局部变量

  3. 3

    为什么局部变量在Java中是线程安全的

  4. 4

    为什么局部变量在Java中也称为“自动”?

  5. 5

    如何防止破坏 Rust 中对局部变量的引用?

  6. 6

    什么是线程中的局部变量?

  7. 7

    为什么在类中定义的变量不是局部变量而是Java中的实例变量?

  8. 8

    在Java中开关控制局部变量

  9. 9

    Java字节码中的局部变量

  10. 10

    在Java Lambda中编辑局部变量

  11. 11

    Java中的局部变量和实例变量有什么区别

  12. 12

    在Java中,“初始化局部变量”的确切含义是什么?

  13. 13

    Java中的局部变量与全局变量同名

  14. 14

    局部变量是多余的Java

  15. 15

    什么是内存模型中的局部变量和对象?

  16. 16

    为什么局部变量会在Python中循环

  17. 17

    为什么lambda对象中的局部变量是const?

  18. 18

    张量流中的局部变量是什么?

  19. 19

    javascript 中语句头的局部变量的范围是什么?

  20. 20

    在嵌套方法中访问时,局部变量被闭包捕获破坏

  21. 21

    访问ASM Java库中的局部变量

  22. 22

    Java中是否有线程组局部变量?

  23. 23

    Java ASM - 如何在方法中创建局部变量

  24. 24

    Java-静态方法中的局部变量

  25. 25

    如何在Java中创建静态局部变量?

  26. 26

    在内部类中访问局部变量(java)

  27. 27

    如何使局部变量在Java中的循环外可访问

  28. 28

    为什么即使事后没有修改,Java中的局部变量也不被视为“有效的最终变量”?

  29. 29

    如何通过将局部变量存储到Java Android中的类变量(全局)来访问局部变量

热门标签

归档