在静态方法中实例化的对象发生了什么
本文关键字:对象 发生了 什么 实例化 静态方法 | 更新日期: 2023-09-27 18:17:34
我有一个静态对象,看起来有点像这样:
public static class MyStaticObject
{
public static void SomeMethod()
{
MyObject TheObject = new MyObject();
//some long runnning tasks
}
}
可以看到,当SomeMethod()
运行时,它创建了一个MyObject
。创建它的方法返回后,这个实例化对象会发生什么?如果SomeMethod()
被再次调用,而它已经执行响应前一个方法调用,是否会有并发问题,或者每个方法调用实例化自己的MyObject
?
TheObject
只是一个局部变量,无论方法是否是静态的,它的行为都是一样的。
所以在方法返回之后,对象(如果不再有对它的引用)就可以被垃圾收集器回收了。
在递归的情况下,只会创建另一个局部变量。
如果您有C/C++
背景,TheObject
在C/C++
术语中不是 static
变量。