我开始将许多涉及昂贵的迭代数学例程的大型非OOP子程序移动到它们自己的类中。每当我想使用一个较大的子程序(现在是类)时,我将它们创建为一个对象,假设一旦不再使用该对象(因为退出调用代码),它们将从内存中删除。
我的问题是:如果使用一个按钮或触发子程序实例化对象并运行该例程中的代码,那么一旦代码完成,该对象是否会通过垃圾回收从内存中被杀死?
另外,我不想多线程,因为用户一次不会运行多个类。
答案 0 :(得分:3)
一旦代码完成,该对象是否会通过垃圾回收从内存中被杀死?
不,不一定。
只要该代码完成,就不会有对该对象的更多活动引用。这意味着它将符合条件进行垃圾收集,但这不会立即发生。它将在该点之后的适当时间收集。