易截截图软件、单文件、免安装、纯绿色、仅160KB

asp.net面试答案补充3 .net的垃圾回收机制

.net 垃圾回收机制 【转帖】
2009-02-13 17:44
net内存回收与Dispose﹐Close﹐Finalize方法
一. net的对象使用一般分为三种情况﹕
1.创建对象
2.使用对象
3.释放对象
二.创建对象
1.创建对象实际分为两个步骤﹕变量类型宣告和初始化对象
2.变量类型宣告(declare),如﹕
FileStream fs
这行代码会在当前的变量作用域空间(栈或堆)里建立一个叫做fs的变量﹐至少四个字节吧(因为要存一个对象的地址)
3.初始化对象
对象在使用(调用其方法或属性)前﹐必须进行初始化。
如﹕
fs = new FileStream(@"C:\test.txt",FileMode.OpenOrCreate);
这行代码会分成3个步骤﹕
a.在托管堆中分配一块内存﹐其大小等于FileStream中所有字段(当然不包括静态的)的内存总和加上MS认为需要的其它东东。
b.初始化对象的字段(值类型的把其位全部初始化成0,对象初始化为null﹐当然string是一个例外﹐它被初始化成空字符串)
c.调用FileStream相应的构造器﹐这里会初始化一个非托管资源(文件)的私有字段。
三.使用对象
使用对象就没什么讲的﹐就是调用对象的方法(或属性等)来完成某个功能当然为了释放对象而调用的方法其范畴应不属于此类中(现在提到的Finalize等)
四.释放对象
1.释放对象也就是说这个对象我已经不需要了﹐现在我要把其释放﹐以便把其在堆上所占用的内存空间给收回来(当然变量名的内存空间就不需要管了﹐因为它会随其作用域自动消失)
2. .net自动进行内存管理﹐也就是说当它判断一个对象没有用了(当然有自己的算法)﹐它就会将其内存给自动收回来﹐但是其收回的时间一般不确定(当.net认为内存紧张时﹐它就会开始)
BTW:其实我们就是想自己收回对象的内存也不可能﹐因为MS没有提供途径(GC.Collect也是启动.net的内存收集功能)
五.第一个结论
在net中使用对象很简单﹐创建对象之后直接使用就可以了﹐不用了也不要去管它﹐垃圾收集器会帮你把内存要回来的。
六.例外
当对象的成员引用了一个非托管资源时(不在托管堆上分配的内存或资源﹐像文件﹐数据库连接等等)﹐下面以一个例子来说明﹕
System.IO.FileStream类别﹐这是.net基本类库提供的一个非托管资源(文件)封装对象(用Reflector工具反编译mscorlib.dll可见其代码)
1.FileStream毫无疑问封装了


相关文档:

浅谈ASP.net安全编程

在Web编程过程中,存在着很多安全隐患。比如在以前的ASP版本中,Cookie为访问者和编程者都提供了方便,并没有提供加密的功能。打开IE浏览器,选择“工具”菜单里的“Internet选项”,然后在弹出的对话框里单击“设置”按钮,选择“查看文件”按钮,在弹出的窗口中,就会显示硬盘里 ......

40条ASP.NET开发Tip

欢迎拍砖,共同进步!!!
1、在compilation 下,请设置debug=false ,如下:
 
default Language="c#" debug="false">
2、请使用Server.Transfer代替Response.Redirect。
3、使用Validator控件,请要经常检查Page.IsValid。
4、请使用foreach循环,而不是为字符串迭代循环。
5、请使用客户端验证 ......

asp.net 将HTML文件当ASPX文件解析

首先在应用程序的WEB.CONFIG修改如下节点。
<httpHandlers>
    <add verb="*" path="*.html" type="System.Web.UI.PageHandlerFactory"/>
</httpHandlers>
<assemblies>
    <buildProviders>
        <add ext ......

ASP.NET Word转为PDF

1、首先安装 Microsoft Office 2007加载项:Microsoft Save as PDF-简体中文版:下载地址:
http://download.microsoft.com/download/3/8/8/388812b2-0d3f-474e-a7ef-b095d3d0d3cd/SaveAsPDF.exe
2、新建网站项目,添加Microsoft.Office.Interop.Word的引用
3、代码:
/// <summary>
/// 转换word为pdf
......

刚刚面试asp.net题

今天去面试刚刚回来,趁着刚才提问的问题还在脑海里,现在赶快写出来分享分享,问的问题比较的多。,单圈是关于ASP.net和它周边的技术问题,我有几个都没回答上来,修炼不够啊
(1)首先是让我介绍一下自己的情况::我就从大一开始说,学到的关于网络、软件这方面的知识,一直说到大四,现在找工作,是不是缺少啥呢??。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号