ASP.net中页面变量的状态?
Asp.net在页中声明并实例一个类的实例(如:三层结构中的DB类的实例)
例如:
a.aspx.cs
partial class p1 : Page
{
dbClass db = new dbClass();
protected void Page_Load( o,e)
{
}
}
这时候 变量db是存放在哪部分的内存中? 注:这时变量每次刷新页面都会重新创建一个新的.
若定义改为 " static dbClass db = new dbClass(); " 这样,每次刷新页面后,这个静态变量都是同一个,即不会重新创建.
但这时候的变量 db 应该会存放在那部分的内存中??
有这方面认识的朋友,麻烦解答一下.
谢谢....
------解决方案--------------------非静态的变量的生存期就是页面的生存期,静态变量只实例化一次,其生存期是整个网站应用程序的生存期
它们都是在服务器内存中的
------解决方案--------------------
------解决方案--------------------静态变量存在于内存的静态区,生命周期很长,应用程序结束
一般变量实例化时存在于内存的堆中,页面销毁时,就会被回收。
------解决方案-------------------- 在B/S结构中 静态变量很容易出现并发冲突,用户访问的都是同一个内存地址,所以在处理时一定要小心,不然很难发现问题的,一般用来存储公用并且不会在运行时修改的值.
如果是一个集合或者需要修改的,一定要lock住在进行操作