静态方法会不会导致内存递增?
static string abc()
{
return new obj().aa();
}
这样的写法 每次程序引用 abc()的静态方法
会不会导致内存增加。。 就是说 会不会 obj这个对象不断的存在内存中?
还望各位大牛赐教!!
------解决方案--------------------不会,.net有自己独特的垃圾回收机制
------解决方案--------------------不会,不然要垃圾收集器有什么用?
------解决方案--------------------应该不会。
但是,如果aa()方法,或obj的构造函数里有问题,也有可能造成obj不能得到垃圾回收。
------解决方案--------------------
------解决方案--------------------你先搞清楚C#和C++区别再问这个问题。你要的答案,和你要提的问题风马牛的事情。
你问的问题等于这样
while(true)
{
new obj();
}
对内存会产生什么影响。影响肯定会有的,会增加垃圾回收的负担。
------解决方案--------------------C#中有垃圾回收机制,自动回收垃圾。
------解决方案--------------------应该会的吧!但是我也不好乱说
------解决方案--------------------static string abc()
{
return new obj().aa();
}
不会 但会不断地创建删除 创建删除(回收)
可以用单例模式
判断的依据是 是否有一个变量一直引用着它
------解决方案--------------------会或不会都不对...会不会只取决于你obj对象的aa方法是怎么写的...
如果你的代码没问题就不会,有问题就会...而不管会不会都跟静态方法没有半毛钱关系...