首页 新闻 会员 周边 捐助

静态成员初始化之后什么时候会释放?是在程序完全结束后被释放吗?与全局变量有什么不同?

0
悬赏园豆:20 [已关闭问题]

比方说:为什么要在单件模式下将全局访问点的方法(或属性)定义为静态的?CLR机制是怎样为它分配内存和回收的?
单件模式静态初始化的原理是什么?
谢谢

问题补充: 静态成员初始化后的生命周期是怎样的?
行者无疆!的主页 行者无疆! | 初学一级 | 园豆:170
提问于:2010-06-06 11:15
< >
分享
其他回答(3)
0

静态成员在第一次被访问之前并且在任何静态构造函数(如调用的话)之前初始化。

单例模式更符合OCP,而静态类更适用于工具类。

单例模式一般有重要的状态。静态类一般没有状态,当类中没有依赖对象标识的数据或行为时,就可以使用静态类。

Astar | 园豆:40805 (高人七级) | 2010-06-06 11:34
0

静态 字段 (或变数),在 Asp.net 中,必须等到 ap server (IIS) 重启或关闭,才会从内存被释放。
因此在内存的占用上仍要注意。


但设计系统架构时,真正要考虑的是,其为所有用户共用同一块内存的全局变量。

WizardWu | 园豆:1402 (小虾三级) | 2010-06-06 13:08
0

上面正解

兴百放 | 园豆:230 (菜鸟二级) | 2010-06-06 15:56
0

说一下单例模式为什么要静态初始化,因为静态成员是属于类的,而不是属于某个对象的,也就是所有对象公用一个静态对象。所以如果单例模式中不使用静态成员的话,将无法保证单例。

翰墨小生 | 园豆:51 (初学一级) | 2010-06-06 15:59
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册