【发布时间】:2019-03-01 03:22:50
【问题描述】:
据我所知,方法的局部变量位于执行线程中的堆栈帧中,并且局部变量的引用类型只有对象的引用,而不是对象本身。 JVM 中的所有对象都位于堆空间中。
我想知道正在执行的方法中由局部变量引用的对象在方法执行结束之前永远不会被垃圾收集。 (不使用 java.lang.ref.WeakReference 和 SoftReference。)
它们是垃圾收集的吗?还是从不?有编译器对这类东西的优化吗?
(如果它们从不被垃圾回收,这意味着在执行需要很长时间的大方法时,可能需要将 null 分配给不再使用的变量。)
【问题讨论】:
标签: java garbage-collection jvm