一些.net中应该知道的问题
1.C#中的垃圾回收机制是怎样的?
垃圾回收器是用来管理应用程序的内存分配和释放的。当一个应用程序在运行的时候,垃圾回收器设置了一个托管堆。每次当开发人员使用 new 运算符创建对象时,运行库都从托管堆为该对象分配内存。新创建的对象被放在上次创建的对象之后。垃圾回收器保存了一个指针,该指针总是指向托管堆中最后一个对象之后的内存空间。当新的对象被产生时,运行库就知道应该将新的对象放在内存的什么地方。当垃圾回收器的指针指向托管堆以外的内存空间时,就需要回收内存中的垃圾了。在这个过程中,垃圾回收器首先假设在托管堆中所有的对象都需要被回收。然后它在托管堆中寻找被根对象引用的对象(根对象就是全局,静态或处于活动中的局部变量以及寄存器指向的对象),找到后将它们加入一个有效对象的列表中,并在已经搜索过的对象中寻找是否有对象被新加入的有效对象引用。直到垃圾回收器检查完所有的对象后,就有一份根对象和根对象直接或间接引用了的对象的列表,而其它没有在表中的对象就被从内存中回收
protected void Page_Load(object sender, EventArgs e)
{
foreach (Control ctl in Page.Controls[0].Controls)
{
if (ctl.GetType().Name == "TextBox")
{
TextBox tb = new TextBox();
tb = (TextBox)this.FindControl(ctl.ID);
tb.Text = "";
}
}
}
int[] i = new int[5] {5,3,4,2,1};
for(int j = 0; j < i.Length-1; j++)
{
for (int k = 0; k < i.Length-1; k++)
{
int a;
if (i[k] > i[k + 1])
{
a = i[k];
i[k] = i[k + 1];
i[k+1]=a;
}
}
}
It is the new features in IIS 6.0. An Application Pool can contain one or more applications and allows us to configure a level of isolation between different Web applications. For example, if you want to isolate all the Web applications running in the same computer, you can do this by creating a separate application pool for every Web application and placing them in their corresponding application pool. Because each application pool runs in its own worker process, errors in one application pool will not affect the applications running in other application pools. Deploying applications in application pools is a primary advantage of running IIS 6.0 in worker process isolation mode because you can customize the application pools to achieve the degree of application isolation that you need.____ http://www.developer.com/net/asp/article.php/2245511 需要的话,大家多多支持,我可以抓时间翻译全文,呵呵。
以前下过一个Enterprise Library 2006,但是没具体应用过,我知道和熟悉的就是Data Access Application Block 和一个关于日志的Application Block了。下面是所有的:数据访问应用程序块;配置管理应用程序块;安全应用程序库;日志和监测应用程序块;缓存应用程序块;异常处理应用程序块;加密应用程序块。
6 .NET 中的3C
通用类型系统(CTS:Common Type System):为了实现语言的互操作性,必须有一组各种语言都认可的基本数据类型,这样才能对所有的语言进行标准化处理。CTS 就提供了这个功能,还提供了定义定制类的功能。
公共语言规范(CLS:Common Language Specification):这是确保代码可以在任何语言中访问的最小集合,所有用于.Net的编译器都应该该支持CLS。CLS构成了可以在.Net 和 IL中使用的功能子集,代码也可以使用CLS外部的功能。如果非CLS功能在代码所在的装配件外部是可见的,那么这些功能就不能在某些语言中使用。
公共语言运行时(CLR:Common Language Runtime):它实际上管理代码,他可以处理加载程序、运行程序的代码以及提供所有支持服务的代码。
7. 请解释转发与跳转的区别?
在开发WEB系统中,我们都会遇到这样的一种情况,一个页面处理完信息,还有一些处理需要其它页面继续处理,这时候就会有两个选择,是使用页面跳转还是使用请求转发呢?
8.请简述一下用Socket进行同步通讯编程的详细步骤
A、在应用程序和远程设备中使用协议和网络地址初始化套接字
B、在应用程序中通过指定端口和地址建立监听
C、远程设备发出连接请求
D、应用程序接受连接产生通信scoket
E、应用程序和远程设备开始通讯(在通讯中应用程序将挂起直到通讯结束)
F、通讯结束,关闭应用程序和远程设备的Socket回收资源
9、在C#中,string str = null 与 string str = “” 请尽量使用文字或图象说明其中的区别。
string str = null 是不给他分配内存空间,而string str = “”给它分配长度为空字符窜的内存空间.